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/.
npm install --save generate-vcard
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" }
}
]);
Generated using TypeDoc