generate-vcard
v1.5.0
Published
A simple library for vCard generation compatible with RFC 6350, 6474, 6715 and 8605
Downloads
159
Maintainers
Readme
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.
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" }
}
]);