UNPKG

dtable-utils

Version:

dtable common utils

67 lines (61 loc) 2.37 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); /** * Get collaborator by email * @param {array} collaborators e.g. [{ email, name, ... }, ...] * @param {string} email * @returns collaborator, object */ var getCollaborator = function getCollaborator(collaborators, email) { if (!Array.isArray(collaborators) || !email) return null; return collaborators.find(function (collaborator) { return collaborator.email === email; }); }; /** * Get collaborators name list of given emails * @param {array} emails e.g. ['email', ...] * @param {array} collaborators e.g. [{ email, name, ... }, ...] * @returns name list, array. e.g. ['name1', 'name2'] */ var getCollaboratorsNames = function getCollaboratorsNames(emails, collaborators) { if (!Array.isArray(emails) || !Array.isArray(collaborators)) { return []; } var emailCollaboratorMap = {}; collaborators.forEach(function (collaborator) { emailCollaboratorMap[collaborator.email] = collaborator; }); return emails.map(function (email) { var collaborator = emailCollaboratorMap[email]; return collaborator && collaborator.name; }).filter(Boolean); }; /** * Get concatenated collaborators names of given emails. * @param {array} collaborators e.g. [{ email, name, ... }, ...] * @param {array} emails e.g. ['email', ...] * @returns concatenated collaborators names, string. e.g. 'name1, name2' */ var getCollaboratorsName = function getCollaboratorsName(collaborators, emails) { var collaboratorsNames = getCollaboratorsNames(emails, collaborators); if (!Array.isArray(collaboratorsNames) || collaboratorsNames.length === 0) return ''; return collaboratorsNames.join(', '); }; var getCollaboratorEmailsByNames = function getCollaboratorEmailsByNames(names, collaborators) { if (!Array.isArray(names) || !Array.isArray(collaborators)) return []; var emails = []; names.forEach(function (name) { var collaborator = collaborators.find(function (collaboratorItem) { return collaboratorItem.name === name; }); if (collaborator) { emails.push(collaborator.email); } }); return emails; }; exports.getCollaborator = getCollaborator; exports.getCollaboratorEmailsByNames = getCollaboratorEmailsByNames; exports.getCollaboratorsName = getCollaboratorsName; exports.getCollaboratorsNames = getCollaboratorsNames;