UNPKG

luhn-generator

Version:

A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm

42 lines (34 loc) 1.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = extractValueFromTemplateLiteral; function sortStarts(a, b) { return (a.range ? a.range[0] : a.start) - (b.range ? b.range[0] : b.start); } /** * Returns the string value of a template literal object. * Tries to build it as best as it can based on the passed * prop. For instance `This is a ${prop}` will return 'This is a {prop}'. * * If the template literal builds to undefined (`${undefined}`), then * this should return "undefined". */ function extractValueFromTemplateLiteral(value) { var quasis = value.quasis, expressions = value.expressions; var partitions = quasis.concat(expressions); return partitions.sort(sortStarts).reduce(function (raw, part) { var type = part.type; if (type === 'TemplateElement') { return raw + part.value.raw; } if (type === 'Identifier') { return part.name === 'undefined' ? '' + raw + part.name : raw + '{' + part.name + '}'; } if (type.indexOf('Expression') > -1) { return raw + '{' + type + '}'; } return raw; }, ''); }