import { prefixLines, stripLastNewLine } from '../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 = stripLastNewLine(part); return ''.concat(result, isFirstPart ? '' : indentation ? '\n' : ' ', indentation ? prefixLines(indentation[1], strippedPart, isFirstPart) : strippedPart, index < lastSeparatorIndex ? separator : ''); }, ''); } }; }; export default inlineArrayTransformer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmxpbmVBcnJheVRyYW5zZm9ybWVyL2lubGluZUFycmF5VHJhbnNmb3JtZXIuanMiXSwibmFtZXMiOlsicHJlZml4TGluZXMiLCJzdHJpcExhc3ROZXdMaW5lIiwiaW5saW5lQXJyYXlUcmFuc2Zvcm1lciIsImNvbmp1bmN0aW9uIiwic2VwYXJhdG9yIiwic2VyaWFsIiwib25TdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJyZXN1bHRTb0ZhciIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImxhc3RTZXBhcmF0b3JJbmRleCIsImluZGVudGF0aW9uIiwibWF0Y2giLCJjb25jYXQiLCJyZWR1Y2UiLCJyZXN1bHQiLCJwYXJ0IiwiaW5kZXgiLCJpc0ZpcnN0UGFydCIsInN0cmlwcGVkUGFydCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsV0FBVCxFQUFzQkMsZ0JBQXRCLFFBQThDLFVBQTlDO0FBRUE7Ozs7Ozs7OztBQVFBLElBQU1DLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUI7QUFBQSxnQ0FJM0IsRUFKMkI7QUFBQSw4QkFDN0JDLFdBRDZCO0FBQUEsTUFDN0JBLFdBRDZCLGlDQUNmLEVBRGU7QUFBQSw0QkFFN0JDLFNBRjZCO0FBQUEsTUFFN0JBLFNBRjZCLCtCQUVqQixFQUZpQjtBQUFBLHlCQUc3QkMsTUFINkI7QUFBQSxNQUc3QkEsTUFINkIsNEJBR3BCLEtBSG9COztBQUFBLFNBSW5CO0FBQ1ZDLElBQUFBLGNBRFUsMEJBQ0tDLFlBREwsRUFDbUJDLFdBRG5CLEVBQ2dDO0FBQ3hDO0FBQ0EsVUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0gsWUFBZCxDQUFMLEVBQWtDO0FBQ2hDLGVBQU9BLFlBQVA7QUFDRDs7QUFKdUMsVUFNaENJLE1BTmdDLEdBTXJCSixZQU5xQixDQU1oQ0ksTUFOZ0M7QUFPeEMsVUFBTUMsa0JBQWtCLEdBQUdULFdBQVcsSUFBSSxDQUFDRSxNQUFoQixHQUF5Qk0sTUFBTSxHQUFHLENBQWxDLEdBQXNDQSxNQUFNLEdBQUcsQ0FBMUU7QUFDQSxVQUFNRSxXQUFXLEdBQUdMLFdBQVcsQ0FBQ00sS0FBWixDQUFrQixtQkFBbEIsQ0FBcEI7O0FBRUEsVUFBSVgsV0FBVyxJQUFJUSxNQUFNLEdBQUcsQ0FBNUIsRUFBK0I7QUFDN0JKLFFBQUFBLFlBQVksQ0FBQ0ksTUFBTSxHQUFHLENBQVYsQ0FBWixHQUEyQixHQUFHSSxNQUFILENBQ3pCWixXQUR5QixFQUV6QixHQUZ5QixFQUd6QkksWUFBWSxDQUFDSSxNQUFNLEdBQUcsQ0FBVixDQUhhLENBQTNCO0FBS0Q7O0FBRUQsYUFBT0osWUFBWSxDQUFDUyxNQUFiLENBQW9CLFVBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFlQyxLQUFmLEVBQXlCO0FBQ2xELFlBQU1DLFdBQVcsR0FBR0QsS0FBSyxLQUFLLENBQTlCO0FBQ0EsWUFBTUUsWUFBWSxHQUFHcEIsZ0JBQWdCLENBQUNpQixJQUFELENBQXJDO0FBQ0EsZUFBTyxHQUFHSCxNQUFILENBQ0xFLE1BREssRUFFTEcsV0FBVyxHQUFHLEVBQUgsR0FBUVAsV0FBVyxHQUFHLElBQUgsR0FBVSxHQUZuQyxFQUdMQSxXQUFXLEdBQ1BiLFdBQVcsQ0FBQ2EsV0FBVyxDQUFDLENBQUQsQ0FBWixFQUFpQlEsWUFBakIsRUFBK0JELFdBQS9CLENBREosR0FFUEMsWUFMQyxFQU1MRixLQUFLLEdBQUdQLGtCQUFSLEdBQTZCUixTQUE3QixHQUF5QyxFQU5wQyxDQUFQO0FBUUQsT0FYTSxFQVdKLEVBWEksQ0FBUDtBQVlEO0FBL0JTLEdBSm1CO0FBQUEsQ0FBL0I7O0FBc0NBLGVBQWVGLHNCQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJlZml4TGluZXMsIHN0cmlwTGFzdE5ld0xpbmUgfSBmcm9tICcuLi91dGlscyc7XG5cbi8qKlxuICogQ29udmVydHMgYW4gYXJyYXkgc3Vic3RpdHV0aW9uIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBsaXN0XG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuc2VwYXJhdG9yID0gJyddICAgLSBUaGUgY2hhcmFjdGVyIHRoYXQgc2VwYXJhdGVzIGVhY2ggaXRlbVxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLmNvbmp1bmN0aW9uID0gJyddIC0gUmVwbGFjZSB0aGUgbGFzdCBzZXBhcmF0b3Igd2l0aCB0aGlzXG4gKiBAcGFyYW0ge0Jvb2xlYW59IFtvcHRzLnNlcmlhbCA9IGZhbHNlXSAgLSBJbmNsdWRlIHRoZSBzZXBhcmF0b3IgYmVmb3JlIHRoZSBjb25qdW5jdGlvbj8gKE94Zm9yZCBjb21tYSB1c2UtY2FzZSlcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9ICAgICAgICAgICAgICAgICAgICAgICAgLSBBIHRyYW5zZm9ybWVyXG4gKi9cbmNvbnN0IGlubGluZUFycmF5VHJhbnNmb3JtZXIgPSAoe1xuICBjb25qdW5jdGlvbiA9ICcnLFxuICBzZXBhcmF0b3IgPSAnJyxcbiAgc2VyaWFsID0gZmFsc2UsXG59ID0ge30pID0+ICh7XG4gIG9uU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbiwgcmVzdWx0U29GYXIpIHtcbiAgICAvLyBvbmx5IG9wZXJhdGUgb24gYXJyYXlzXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHN1YnN0aXR1dGlvbikpIHtcbiAgICAgIHJldHVybiBzdWJzdGl0dXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgeyBsZW5ndGggfSA9IHN1YnN0aXR1dGlvbjtcbiAgICBjb25zdCBsYXN0U2VwYXJhdG9ySW5kZXggPSBjb25qdW5jdGlvbiAmJiAhc2VyaWFsID8gbGVuZ3RoIC0gMiA6IGxlbmd0aCAtIDE7XG4gICAgY29uc3QgaW5kZW50YXRpb24gPSByZXN1bHRTb0Zhci5tYXRjaCgvKD86XFxuKShbXlxcU1xcbl0rKSQvKTtcblxuICAgIGlmIChjb25qdW5jdGlvbiAmJiBsZW5ndGggPiAxKSB7XG4gICAgICBzdWJzdGl0dXRpb25bbGVuZ3RoIC0gMV0gPSAnJy5jb25jYXQoXG4gICAgICAgIGNvbmp1bmN0aW9uLFxuICAgICAgICAnICcsXG4gICAgICAgIHN1YnN0aXR1dGlvbltsZW5ndGggLSAxXSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1YnN0aXR1dGlvbi5yZWR1Y2UoKHJlc3VsdCwgcGFydCwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGlzRmlyc3RQYXJ0ID0gaW5kZXggPT09IDA7XG4gICAgICBjb25zdCBzdHJpcHBlZFBhcnQgPSBzdHJpcExhc3ROZXdMaW5lKHBhcnQpO1xuICAgICAgcmV0dXJuICcnLmNvbmNhdChcbiAgICAgICAgcmVzdWx0LFxuICAgICAgICBpc0ZpcnN0UGFydCA/ICcnIDogaW5kZW50YXRpb24gPyAnXFxuJyA6ICcgJyxcbiAgICAgICAgaW5kZW50YXRpb25cbiAgICAgICAgICA/IHByZWZpeExpbmVzKGluZGVudGF0aW9uWzFdLCBzdHJpcHBlZFBhcnQsIGlzRmlyc3RQYXJ0KVxuICAgICAgICAgIDogc3RyaXBwZWRQYXJ0LFxuICAgICAgICBpbmRleCA8IGxhc3RTZXBhcmF0b3JJbmRleCA/IHNlcGFyYXRvciA6ICcnLFxuICAgICAgKTtcbiAgICB9LCAnJyk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgaW5saW5lQXJyYXlUcmFuc2Zvcm1lcjtcbiJdfQ==