1.5.0 • Published 2 years ago

generate-vcard v1.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Generate vCard

semantic-release npm-version coverage

A simple library for vCard generation compatible with RFC 6350 and additions defined in RFC 6474, RFC 6715 and RFC 8605.

The library also supports some experimental drafts for additional properties and parameters. As they are not part of the official IANA spec, they will be prefixed with X- in the generated vCard. The supported additions are some social properties as defined in draft-george-vcarddav-vcard-extension-02, the service type parameter for IMPP properties as defined in draft-daboo-vcard-service-type as well as the X-ABLabel property used by GMail and iOs for URL labelling, as described here.

Documentation

For more documentation see https://1nvitr0.github.io/lib-generate-vcard/.

Installation

npm install --save generate-vcard

Usage

import generateVCard, { Kind } from "generate-vcard";

const vCard = generateVCard({
  kind: Kind.Individual,
  fullName: "Jane Doe",
  name: { honorificPrefix: "Dr.", familyName: "Doe", givenName: "Jane"  },
  socialProfile: [
    { value: "https://instagram.com/", parameters: { type: "instagram" } },
    { value: "https://twitter.com/", parameters: { type: "twitter" } },
  ]
});
BEGIN:VCARD
VERSION:4.0
KIND:individual
FN:Jane Doe
N:Doe;Jane;;Dr.;
X-SOCIALPROFILE;TYPE=instagram:https://instagram.com/
X-SOCIALPROFILE;TYPE=twitter:https://twitter.com/
END:VCARD

Alternative usages:

import { VCard, Kind } from "generate-vcard";

const vCard = new VCard(Kind.Individual);
vCard.setFullName("Jane Doe");
vCard.setName({ honorificPrefix: "Dr.", familyName: "Doe", givenName: "Jane"  });
vCard.setSocialProfile([
  { value: "https://instagram.com/", parameters: { type: "instagram" } },
  { value: "https://twitter.com/", parameters: { type: "twitter" } },
]);

vCard.toString();
import generateVCard, { Kind, PropertyName } from "generate-vcard";

const vCard = generateVCard([
  { property: PropertyName.kind, value: Kind.Individual },
  { property: PropertyName.fullName, value: "Jane Doe" },
  { 
    property: Property.name,
    value: { honorificPrefix: "Dr.", familyName: "Doe", givenName: "Jane"  }
  },
  {
    property: Property.socialProfile,
    value: "https://instagram.com/",
    parameters: { type: "instagram" }
  },
  {
    property: Property.socialProfile,
    value: "https://twitter.com/",
    parameters: { type: "twitter" }
  }
]);
1.5.0

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago