vcard-generator
Version:
VCard v4.0 rfc6350 compliant generator from JSON.
96 lines (62 loc) • 3.16 kB
JavaScript
'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');
};