A simple library for vCard generation compatible with RFC 6350, 6474, 6715 and 8605
npm install generate-vcard


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.
For more documentation see https://1nvitr0.github.io/lib-generate-vcard/.
``bash`
npm install --save generate-vcard
`javascript
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" } },
]
});
`
> `text`
> 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:
`javascript
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();
`
`javascript
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" }
}
]);
``