generate-vcard
TypeScript icon, indicating that this package has built-in type declarations

1.5.0 • Public • Published

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" }
  }
]);

Package Sidebar

Install

npm i generate-vcard

Weekly Downloads

52

Version

1.5.0

License

MIT

Unpacked Size

159 kB

Total Files

6

Last publish

Collaborators

  • 1nvitr0