UNPKG

vcard-generator

Version:

VCard v4.0 rfc6350 compliant generator from JSON.

96 lines (62 loc) 3.16 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _N = require('./N'); var _N2 = _interopRequireDefault(_N); var _FN = require('./FN'); var _FN2 = _interopRequireDefault(_FN); var _NICKNAME = require('./NICKNAME'); var _NICKNAME2 = _interopRequireDefault(_NICKNAME); var _XNAME = require('./X-NAME'); var _XNAME2 = _interopRequireDefault(_XNAME); var _WORK = require('./WORK'); var _WORK2 = _interopRequireDefault(_WORK); var _EMAIL = require('./EMAIL'); var _EMAIL2 = _interopRequireDefault(_EMAIL); var _TEL = require('./TEL'); var _TEL2 = _interopRequireDefault(_TEL); var _ADR = require('./ADR'); var _ADR2 = _interopRequireDefault(_ADR); var _SOCIALPROFILE = require('./SOCIALPROFILE'); var _SOCIALPROFILE2 = _interopRequireDefault(_SOCIALPROFILE); var _URL = require('./URL'); var _URL2 = _interopRequireDefault(_URL); var _PHOTO = require('./PHOTO'); var _PHOTO2 = _interopRequireDefault(_PHOTO); var _BDAY = require('./BDAY'); var _BDAY2 = _interopRequireDefault(_BDAY); var _GENDER = require('./GENDER'); var _GENDER2 = _interopRequireDefault(_GENDER); var _NOTE = require('./NOTE'); var _NOTE2 = _interopRequireDefault(_NOTE); var _util = require('./util'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var listWithPref = function listWithPref(list, fn) { if (!list || !list.length) return null; if (list.length === 1) return fn(list[0]); return list.map(function (item, i) { return fn(_extends({ pref: i + 1 }, item)); }).join('\n'); }; exports.default = function (_ref) { var version = _ref.version, name = _ref.name, formattedNames = _ref.formattedNames, nicknames = _ref.nicknames, extraName = _ref.extraName, organizations = _ref.organizations, jobs = _ref.jobs, works = _ref.works, emails = _ref.emails, phones = _ref.phones, addresses = _ref.addresses, socialProfiles = _ref.socialProfiles, urls = _ref.urls, photos = _ref.photos, birthday = _ref.birthday, gender = _ref.gender, notes = _ref.notes; return ['BEGIN:VCARD', 'VERSION:' + (version || '4.0'), name && (0, _N2.default)(name), listWithPref(formattedNames, _FN2.default), listWithPref(nicknames, _NICKNAME2.default), extraName && (0, _XNAME2.default)(extraName), listWithPref(organizations, _WORK2.default), listWithPref(jobs, _WORK2.default), listWithPref(works, _WORK2.default), listWithPref(emails, _EMAIL2.default), listWithPref(phones, _TEL2.default), listWithPref(addresses, _ADR2.default), listWithPref(socialProfiles, _SOCIALPROFILE2.default), listWithPref(urls, _URL2.default), listWithPref(photos, _PHOTO2.default), birthday && (0, _BDAY2.default)(birthday), gender && (0, _GENDER2.default)(gender), listWithPref(notes, _NOTE2.default), 'END:VCARD'].filter(_util.isSet).join('\n'); };