"use strict"; exports.__esModule = true; exports["default"] = void 0; var _utils = require("../utils"); /** * Converts an array substitution to a string containing a list * @param {String} [opts.separator = ''] - The character that separates each item * @param {String} [opts.conjunction = ''] - Replace the last separator with this * @param {Boolean} [opts.serial = false] - Include the separator before the conjunction? (Oxford comma use-case) * * @return {Object} - A transformer */ var inlineArrayTransformer = function inlineArrayTransformer(_temp) { var _ref = _temp === void 0 ? {} : _temp, _ref$conjunction = _ref.conjunction, conjunction = _ref$conjunction === void 0 ? '' : _ref$conjunction, _ref$separator = _ref.separator, separator = _ref$separator === void 0 ? '' : _ref$separator, _ref$serial = _ref.serial, serial = _ref$serial === void 0 ? false : _ref$serial; return { onSubstitution: function onSubstitution(substitution, resultSoFar) { // only operate on arrays if (!Array.isArray(substitution)) { return substitution; } var length = substitution.length; var lastSeparatorIndex = conjunction && !serial ? length - 2 : length - 1; var indentation = resultSoFar.match(/(?:\n)([^\S\n]+)$/); if (conjunction && length > 1) { substitution[length - 1] = ''.concat(conjunction, ' ', substitution[length - 1]); } return substitution.reduce(function (result, part, index) { var isFirstPart = index === 0; var strippedPart = (0, _utils.stripLastNewLine)(part); return ''.concat(result, isFirstPart ? '' : indentation ? '\n' : ' ', indentation ? (0, _utils.prefixLines)(indentation[1], strippedPart, isFirstPart) : strippedPart, index < lastSeparatorIndex ? separator : ''); }, ''); } }; }; var _default = inlineArrayTransformer; exports["default"] = _default; module.exports = exports.default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2lubGluZUFycmF5VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsImNvbmp1bmN0aW9uIiwic2VwYXJhdG9yIiwic2VyaWFsIiwib25TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJyZXN1bHRTb0ZhciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImxhc3RTZXBhcmF0b3JJbmRleCIsImluZGVudGF0aW9uIiwibWF0Y2giLCJjb25jYXQiLCJyZWR1Y2UiLCJyZXN1bHQiLCJwYXJ0IiwiaW5kZXgiLCJpc0ZpcnN0UGFydCIsInN0cmlwcGVkUGFydCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFQTs7Ozs7Ozs7QUFRQSxJQUFNQSxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXlCO0FBQUEsZ0NBSTNCLEVBSjJCO0FBQUEsOEJBQzdCQyxXQUQ2QjtBQUFBLE1BQzdCQSxXQUQ2QixpQ0FDZixFQURlO0FBQUEsNEJBRTdCQyxTQUY2QjtBQUFBLE1BRTdCQSxTQUY2QiwrQkFFakIsRUFGaUI7QUFBQSx5QkFHN0JDLE1BSDZCO0FBQUEsTUFHN0JBLE1BSDZCLDRCQUdwQixLQUhvQjs7QUFBQSxTQUluQjtBQUNWQyxJQUFBQSxjQURVLDBCQUNLQyxZQURMLEVBQ21CQyxXQURuQixFQUNnQztBQUN4QztBQUNBLFVBQUksQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNILFlBQWQsQ0FBTCxFQUFrQztBQUNoQyxlQUFPQSxZQUFQO0FBQ0Q7O0FBSnVDLFVBTWhDSSxNQU5nQyxHQU1yQkosWUFOcUIsQ0FNaENJLE1BTmdDO0FBT3hDLFVBQU1DLGtCQUFrQixHQUFHVCxXQUFXLElBQUksQ0FBQ0UsTUFBaEIsR0FBeUJNLE1BQU0sR0FBRyxDQUFsQyxHQUFzQ0EsTUFBTSxHQUFHLENBQTFFO0FBQ0EsVUFBTUUsV0FBVyxHQUFHTCxXQUFXLENBQUNNLEtBQVosQ0FBa0IsbUJBQWxCLENBQXBCOztBQUVBLFVBQUlYLFdBQVcsSUFBSVEsTUFBTSxHQUFHLENBQTVCLEVBQStCO0FBQzdCSixRQUFBQSxZQUFZLENBQUNJLE1BQU0sR0FBRyxDQUFWLENBQVosR0FBMkIsR0FBR0ksTUFBSCxDQUN6QlosV0FEeUIsRUFFekIsR0FGeUIsRUFHekJJLFlBQVksQ0FBQ0ksTUFBTSxHQUFHLENBQVYsQ0FIYSxDQUEzQjtBQUtEOztBQUVELGFBQU9KLFlBQVksQ0FBQ1MsTUFBYixDQUFvQixVQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBZUMsS0FBZixFQUF5QjtBQUNsRCxZQUFNQyxXQUFXLEdBQUdELEtBQUssS0FBSyxDQUE5QjtBQUNBLFlBQU1FLFlBQVksR0FBRyw2QkFBaUJILElBQWpCLENBQXJCO0FBQ0EsZUFBTyxHQUFHSCxNQUFILENBQ0xFLE1BREssRUFFTEcsV0FBVyxHQUFHLEVBQUgsR0FBUVAsV0FBVyxHQUFHLElBQUgsR0FBVSxHQUZuQyxFQUdMQSxXQUFXLEdBQ1Asd0JBQVlBLFdBQVcsQ0FBQyxDQUFELENBQXZCLEVBQTRCUSxZQUE1QixFQUEwQ0QsV0FBMUMsQ0FETyxHQUVQQyxZQUxDLEVBTUxGLEtBQUssR0FBR1Asa0JBQVIsR0FBNkJSLFNBQTdCLEdBQXlDLEVBTnBDLENBQVA7QUFRRCxPQVhNLEVBV0osRUFYSSxDQUFQO0FBWUQ7QUEvQlMsR0FKbUI7QUFBQSxDQUEvQjs7ZUFzQ2VGLHNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJlZml4TGluZXMsIHN0cmlwTGFzdE5ld0xpbmUgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgc3Vic3RpdHV0aW9uIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBsaXN0XG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gJyddICAgLSBUaGUgY2hhcmFjdGVyIHRoYXQgc2VwYXJhdGVzIGVhY2ggaXRlbVxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNvbmp1bmN0aW9uID0gJyddIC0gUmVwbGFjZSB0aGUgbGFzdCBzZXBhcmF0b3Igd2l0aCB0aGlzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnNlcmlhbCA9IGZhbHNlXSAgLSBJbmNsdWRlIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBjb25qdW5jdGlvbj8gKE94Zm9yZCBjb21tYSB1c2UtY2FzZSlcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgICAgLSBBIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgPSAoe1xuICBjb25qdW5jdGlvbiA9ICcnLFxuICBzZXBhcmF0b3IgPSAnJyxcbiAgc2VyaWFsID0gZmFsc2UsXG59ID0ge30pID0+ICh7XG4gIG9uU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgcmVzdWx0U29GYXIpIHtcbiAgICAvLyBvbmx5IG9wZXJhdGUgb24gYXJyYXlzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHN1YnN0aXR1dGlvbjtcbiAgICBjb25zdCBsYXN0U2VwYXJhdG9ySW5kZXggPSBjb25qdW5jdGlvbiAmJiAhc2VyaWFsID8gbGVuZ3RoIC0gMiA6IGxlbmd0aCAtIDE7XG4gICAgY29uc3QgaW5kZW50YXRpb24gPSByZXN1bHRTb0Zhci5tYXRjaCgvKD86XFxuKShbXlxcU1xcbl0rKSQvKTtcblxuICAgIGlmIChjb25qdW5jdGlvbiAmJiBsZW5ndGggPiAxKSB7XG4gICAgICBzdWJzdGl0dXRpb25bbGVuZ3RoIC0gMV0gPSAnJy5jb25jYXQoXG4gICAgICAgIGNvbmp1bmN0aW9uLFxuICAgICAgICAnICcsXG4gICAgICAgIHN1YnN0aXR1dGlvbltsZW5ndGggLSAxXSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbi5yZWR1Y2UoKHJlc3VsdCwgcGFydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGlzRmlyc3RQYXJ0ID0gaW5kZXggPT09IDA7XG4gICAgICBjb25zdCBzdHJpcHBlZFBhcnQgPSBzdHJpcExhc3ROZXdMaW5lKHBhcnQpO1xuICAgICAgcmV0dXJuICcnLmNvbmNhdChcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICBpc0ZpcnN0UGFydCA/ICcnIDogaW5kZW50YXRpb24gPyAnXFxuJyA6ICcgJyxcbiAgICAgICAgaW5kZW50YXRpb25cbiAgICAgICAgICA/IHByZWZpeExpbmVzKGluZGVudGF0aW9uWzFdLCBzdHJpcHBlZFBhcnQsIGlzRmlyc3RQYXJ0KVxuICAgICAgICAgIDogc3RyaXBwZWRQYXJ0LFxuICAgICAgICBpbmRleCA8IGxhc3RTZXBhcmF0b3JJbmRleCA/IHNlcGFyYXRvciA6ICcnLFxuICAgICAgKTtcbiAgICB9LCAnJyk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcjtcbiJdfQ==