vcard-generator

0.0.7 • Public • Published

vcard-generator

Build Status Coverage Status npm version Dependency Status License

VCard v4.0 rfc6350 compliant generator from JSON.

Install

npm install --save vcard-generator

Usage

import vcard from 'vcard-generator';
 
const vcardContent = vcard.generate({
  name: {
    familyName: 'Doe',
    givenName: 'John',
    middleName: 'Philip',
    prefix: 'Dr.',
    suffix: 'Jr.',
  },
  formattedNames: [{
    text: 'Mr. Johny',
  }],
  nicknames: [{
    text: 'Phil',
  }],
  extraName: {
    maidenName: 'MaidenName',
    phoneticFirstName: 'PhoneticFirstName',
    phoneticMiddleName: 'PhoneticMiddleName',
    phoneticLastName: 'PhoneticLastName',
 
    pronunciationFirstName: 'PronunciationFirstName',
    pronunciationMiddleName: 'PronunciationMiddleName',
    pronunciationLastName: 'PronunciationLastName',
  },
 
  works: [{
    organization: 'My Company, Inc.',
    title: 'CEO',
    role: 'Executive',
  }],
  emails: [{
    type: 'work',
    text: 'john@mycompany.com',
  }, {
    type: 'home',
    text: 'johndoe@example.com',
  }],
  phones: [{
    type: 'work',
    text: '1 (234) 567-8901',
  }, {
    text: '(123) 123-1234',
  }, {
    uri: 'tel:1234567890',
  }],
  addresses: [{
    type: 'work',
    street: '123 Forbes Ave, Apt 1',
    locality: 'San Francisco',
    region: 'CA',
    code: '12345',
    country: 'USA',
  }, {
    type: 'home',
    street: '456 Home St',
    locality: 'Homeland',
    region: 'CA',
    code: '23456',
    country: 'USA',
  }],
  socialProfiles: [{
    type: 'facebook',
    uri: 'http://www.facebook.com/johndoe',
  }, {
    type: 'twitter',
    user: 'johnie',
  }],
  urls: [{
    type: 'internet',
    uri: 'http://www.mycompany.com',
  }, {
    type: 'personal',
    uri: 'http://www.johndoe.com',
  }],
 
  photos: [{
    type: 'work',
    uri: 'https://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg',
  }, {
    type: 'home',
    dataUri: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC',
  }],
 
  birthday: {
    year: 2000,
    month: 1,
    day: 31,
  },
  gender: {
    sex: 'male',
  },
  notes: [{
    text: 'John Doe has a long and varied history, being documented on more police files that anyone else.\nReports of his death are alas numerous.',
  }, {
    text: 'Another note.',
  }],
});
 
// returns
BEGIN:VCARD
VERSION:4.0
N:Doe;John;Philip;Dr.;Jr.
FN:Mr. Johny
NICKNAME:Phil
X-MAIDENNAME:MaidenName
X-PHONETIC-FIRST-NAME:PhoneticFirstName
X-PHONETIC-MIDDLE-NAME:PhoneticMiddleName
X-PHONETIC-LAST-NAME:PhoneticLastName
X-PRONUNCIATION-FIRST-NAME:PronunciationFirstName
X-PRONUNCIATION-MIDDLE-NAME:PronunciationMiddleName
X-PRONUNCIATION-LAST-NAME:PronunciationLastName
ORG:My Company\, Inc.
TITLE:CEO
ROLE:Executive
EMAIL;PREF=1;TYPE=work:john@mycompany.com
EMAIL;PREF=2;TYPE=home:johndoe@example.com
TEL;PREF=1;TYPE=work:1 (234) 567-8901
TEL;PREF=2:(123) 123-1234
TEL;VALUE=uri;PREF=3:tel:1234567890
ADR;PREF=1;TYPE=work:;;123 Forbes Ave\, Apt 1;San Francisco;CA;12345;USA
ADR;PREF=2;TYPE=home:;;456 Home St;Homeland;CA;23456;USA
X-SOCIALPROFILE;PREF=1;TYPE=facebook:http://www.facebook.com/johndoe
X-SOCIALPROFILE;PREF=2;TYPE=twitter;x-user=johnie:x-apple:johnie
URL;PREF=1;TYPE=internet:http://www.mycompany.com
URL;PREF=2;TYPE=personal:http://www.johndoe.com
PHOTO;PREF=1;TYPE=work:https://upload.wikimedia.org/wikipedia/en/8/80/Wikipedia-logo-v2.svg
PHOTO;PREF=2;TYPE=home:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC
BDAY:20000131
GENDER:M
NOTE;PREF=1:John Doe has a long and varied history\, being documented on more police files that anyone else.\nReports of his death are alas numerous.
NOTE;PREF=2:Another note.
END:VCARD

Package Sidebar

Install

npm i vcard-generator

Weekly Downloads

61

Version

0.0.7

License

MIT

Last publish

Collaborators

  • joonhocho