UNPKG

spectaql

Version:

A powerful library for autogenerating static GraphQL API documentation

62 lines (41 loc) 1.43 kB
"use strict";var _stripTrailing = _interopRequireDefault(require("./stripTrailing"));function _interopRequireDefault(e) {return e && e.__esModule ? e : { default: e };} module.exports = function (...strings) { let joiner = ''; let filterFalsy = false; let fixDoublePeriods = true; let altJoiner; let altJoinerRegex; if (typeof strings[strings.length - 1] === 'object') { const options = strings.pop(); joiner = options.hash.joiner || joiner; filterFalsy = options.hash.filterFalsy === true; altJoiner = options.hash.altJoiner; altJoinerRegex = options.hash.altJoinerRegex; } if (filterFalsy) { strings = strings.filter((s) => s); } if (!strings.length) { return ''; } if (typeof altJoiner !== 'undefined' && altJoinerRegex) { altJoinerRegex = new RegExp(`${altJoinerRegex}$`); let lastString = strings.shift(); let result = lastString; for (const string of strings) { if (altJoinerRegex.test(lastString)) { result = result + altJoiner + string; } else { result = result + joiner + string; } lastString = string; } return result; } if (fixDoublePeriods && joiner.startsWith('.') && strings.length > 1) { strings = strings.map((string, idx, strings) => idx === strings.length - 1 ? string : (0, _stripTrailing.default)(string, '.', {}) ); } return strings.join(joiner); };