UNPKG

9.5 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const indent_string_1 = __importDefault(require("indent-string"));
7const CONCATENATED_VALUES_SEPARATOR = ', ';
8function rtrim(str) {
9 return str.replace(/\s+$/, '');
10}
11function removeTTYColors(str) {
12 return str.replace(/\033\[[0-9;]*m/g, '');
13}
14exports.removeTTYColors = removeTTYColors;
15function wordWrap(str, indent, width) {
16 let curStr = '';
17 let wrappedMsg = '';
18 if (removeTTYColors(str).length <= width - indent)
19 return indent_string_1.default(str, ' ', indent);
20 str = str.replace(/(\r\n)/gm, '\n')
21 .split(/(\S+[ \t]+)|(\S+(?:\n))|(\n)/m)
22 //NOTE: cut empty elements
23 .filter(elm => !!elm);
24 str.forEach(word => {
25 const newStr = curStr + word;
26 if (removeTTYColors(newStr).length > width - indent) {
27 wrappedMsg += `${rtrim(curStr)}\n`;
28 curStr = word;
29 }
30 else {
31 if (curStr[curStr.length - 1] === '\n') {
32 wrappedMsg += `${rtrim(curStr)}\n`;
33 curStr = '';
34 }
35 curStr += word;
36 }
37 });
38 return indent_string_1.default(wrappedMsg + curStr, ' ', indent);
39}
40exports.wordWrap = wordWrap;
41function splitQuotedText(str, splitChar, quotes = '"\'') {
42 let currentPart = '';
43 const parts = [];
44 let quoteChar = null;
45 for (let i = 0; i < str.length; i++) {
46 const currentChar = str[i];
47 if (currentChar === splitChar) {
48 if (quoteChar)
49 currentPart += currentChar;
50 else {
51 parts.push(currentPart);
52 currentPart = '';
53 }
54 }
55 else if (quotes.indexOf(currentChar) > -1) {
56 if (quoteChar === currentChar)
57 quoteChar = null;
58 else if (!quoteChar)
59 quoteChar = currentChar;
60 else
61 currentPart += currentChar;
62 }
63 else
64 currentPart += currentChar;
65 }
66 if (currentPart)
67 parts.push(currentPart);
68 return parts;
69}
70exports.splitQuotedText = splitQuotedText;
71function getPluralSuffix(array) {
72 return array.length > 1 ? 's' : '';
73}
74exports.getPluralSuffix = getPluralSuffix;
75function getConcatenatedValuesString(array, separator) {
76 separator = separator || CONCATENATED_VALUES_SEPARATOR;
77 return array.map(item => `"${item}"`).join(separator);
78}
79exports.getConcatenatedValuesString = getConcatenatedValuesString;
80function getToBeInPastTense(array) {
81 return array.length > 1 ? 'were' : 'was';
82}
83exports.getToBeInPastTense = getToBeInPastTense;
84//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3N0cmluZy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGtFQUF5QztBQUV6QyxNQUFNLDZCQUE2QixHQUFHLElBQUksQ0FBQztBQUUzQyxTQUFTLEtBQUssQ0FBRSxHQUFHO0lBQ2YsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0IsZUFBZSxDQUFFLEdBQUc7SUFDaEMsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLFFBQVEsQ0FBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUs7SUFDeEMsSUFBSSxNQUFNLEdBQU8sRUFBRSxDQUFDO0lBQ3BCLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVwQixJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxHQUFHLE1BQU07UUFDN0MsT0FBTyx1QkFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFMUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztTQUM5QixLQUFLLENBQUMsK0JBQStCLENBQUM7UUFDdkMsMEJBQTBCO1NBQ3pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUxQixHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ2YsTUFBTSxNQUFNLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztRQUU3QixJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxHQUFHLE1BQU0sRUFBRTtZQUNqRCxVQUFVLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNuQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ2pCO2FBQ0k7WUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDcEMsVUFBVSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLE1BQU0sR0FBRyxFQUFFLENBQUM7YUFDZjtZQUVELE1BQU0sSUFBSSxJQUFJLENBQUM7U0FDbEI7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sdUJBQVksQ0FBQyxVQUFVLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBOUJELDRCQThCQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxLQUFLO0lBQzNELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNyQixNQUFNLEtBQUssR0FBUyxFQUFFLENBQUM7SUFDdkIsSUFBSSxTQUFTLEdBQUssSUFBSSxDQUFDO0lBRXZCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUzQixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUU7WUFDM0IsSUFBSSxTQUFTO2dCQUNULFdBQVcsSUFBSSxXQUFXLENBQUM7aUJBQzFCO2dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hCLFdBQVcsR0FBRyxFQUFFLENBQUM7YUFDcEI7U0FDSjthQUNJLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtZQUN2QyxJQUFJLFNBQVMsS0FBSyxXQUFXO2dCQUN6QixTQUFTLEdBQUcsSUFBSSxDQUFDO2lCQUNoQixJQUFJLENBQUMsU0FBUztnQkFDZixTQUFTLEdBQUcsV0FBVyxDQUFDOztnQkFFeEIsV0FBVyxJQUFJLFdBQVcsQ0FBQztTQUNsQzs7WUFFRyxXQUFXLElBQUksV0FBVyxDQUFDO0tBQ2xDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUU1QixPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBaENELDBDQWdDQztBQUVELFNBQWdCLGVBQWUsQ0FBRSxLQUFLO0lBQ2xDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3ZDLENBQUM7QUFGRCwwQ0FFQztBQUVELFNBQWdCLDJCQUEyQixDQUFFLEtBQUssRUFBRSxTQUFTO0lBQ3pELFNBQVMsR0FBRyxTQUFTLElBQUksNkJBQTZCLENBQUM7SUFFdkQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRCxDQUFDO0FBSkQsa0VBSUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBRSxLQUFLO0lBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQzdDLENBQUM7QUFGRCxnREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpbmRlbnRTdHJpbmcgZnJvbSAnaW5kZW50LXN0cmluZyc7XG5cbmNvbnN0IENPTkNBVEVOQVRFRF9WQUxVRVNfU0VQQVJBVE9SID0gJywgJztcblxuZnVuY3Rpb24gcnRyaW0gKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXFxzKyQvLCAnJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVUVFlDb2xvcnMgKHN0cikge1xuICAgIHJldHVybiBzdHIucmVwbGFjZSgvXFwwMzNcXFtbMC05O10qbS9nLCAnJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3b3JkV3JhcCAoc3RyLCBpbmRlbnQsIHdpZHRoKSB7XG4gICAgbGV0IGN1clN0ciAgICAgPSAnJztcbiAgICBsZXQgd3JhcHBlZE1zZyA9ICcnO1xuXG4gICAgaWYgKHJlbW92ZVRUWUNvbG9ycyhzdHIpLmxlbmd0aCA8PSB3aWR0aCAtIGluZGVudClcbiAgICAgICAgcmV0dXJuIGluZGVudFN0cmluZyhzdHIsICcgJywgaW5kZW50KTtcblxuICAgIHN0ciA9IHN0ci5yZXBsYWNlKC8oXFxyXFxuKS9nbSwgJ1xcbicpXG4gICAgICAgIC5zcGxpdCgvKFxcUytbIFxcdF0rKXwoXFxTKyg/OlxcbikpfChcXG4pL20pXG4gICAgICAgIC8vTk9URTogY3V0IGVtcHR5IGVsZW1lbnRzXG4gICAgICAgIC5maWx0ZXIoZWxtID0+ICEhZWxtKTtcblxuICAgIHN0ci5mb3JFYWNoKHdvcmQgPT4ge1xuICAgICAgICBjb25zdCBuZXdTdHIgPSBjdXJTdHIgKyB3b3JkO1xuXG4gICAgICAgIGlmIChyZW1vdmVUVFlDb2xvcnMobmV3U3RyKS5sZW5ndGggPiB3aWR0aCAtIGluZGVudCkge1xuICAgICAgICAgICAgd3JhcHBlZE1zZyArPSBgJHtydHJpbShjdXJTdHIpfVxcbmA7XG4gICAgICAgICAgICBjdXJTdHIgPSB3b3JkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGN1clN0cltjdXJTdHIubGVuZ3RoIC0gMV0gPT09ICdcXG4nKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlZE1zZyArPSBgJHtydHJpbShjdXJTdHIpfVxcbmA7XG4gICAgICAgICAgICAgICAgY3VyU3RyID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGN1clN0ciArPSB3b3JkO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW5kZW50U3RyaW5nKHdyYXBwZWRNc2cgKyBjdXJTdHIsICcgJywgaW5kZW50KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0UXVvdGVkVGV4dCAoc3RyLCBzcGxpdENoYXIsIHF1b3RlcyA9ICdcIlxcJycpIHtcbiAgICBsZXQgY3VycmVudFBhcnQgPSAnJztcbiAgICBjb25zdCBwYXJ0cyAgICAgICA9IFtdO1xuICAgIGxldCBxdW90ZUNoYXIgICA9IG51bGw7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjdXJyZW50Q2hhciA9IHN0cltpXTtcblxuICAgICAgICBpZiAoY3VycmVudENoYXIgPT09IHNwbGl0Q2hhcikge1xuICAgICAgICAgICAgaWYgKHF1b3RlQ2hhcilcbiAgICAgICAgICAgICAgICBjdXJyZW50UGFydCArPSBjdXJyZW50Q2hhcjtcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goY3VycmVudFBhcnQpO1xuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJ0ID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocXVvdGVzLmluZGV4T2YoY3VycmVudENoYXIpID4gLTEpIHtcbiAgICAgICAgICAgIGlmIChxdW90ZUNoYXIgPT09IGN1cnJlbnRDaGFyKVxuICAgICAgICAgICAgICAgIHF1b3RlQ2hhciA9IG51bGw7XG4gICAgICAgICAgICBlbHNlIGlmICghcXVvdGVDaGFyKVxuICAgICAgICAgICAgICAgIHF1b3RlQ2hhciA9IGN1cnJlbnRDaGFyO1xuICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJ0ICs9IGN1cnJlbnRDaGFyO1xuICAgICAgICB9XG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIGN1cnJlbnRQYXJ0ICs9IGN1cnJlbnRDaGFyO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50UGFydClcbiAgICAgICAgcGFydHMucHVzaChjdXJyZW50UGFydCk7XG5cbiAgICByZXR1cm4gcGFydHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQbHVyYWxTdWZmaXggKGFycmF5KSB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDEgPyAncycgOiAnJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmNhdGVuYXRlZFZhbHVlc1N0cmluZyAoYXJyYXksIHNlcGFyYXRvcikge1xuICAgIHNlcGFyYXRvciA9IHNlcGFyYXRvciB8fCBDT05DQVRFTkFURURfVkFMVUVTX1NFUEFSQVRPUjtcblxuICAgIHJldHVybiBhcnJheS5tYXAoaXRlbSA9PiBgXCIke2l0ZW19XCJgKS5qb2luKHNlcGFyYXRvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb0JlSW5QYXN0VGVuc2UgKGFycmF5KSB7XG4gICAgcmV0dXJuIGFycmF5Lmxlbmd0aCA+IDEgPyAnd2VyZScgOiAnd2FzJztcbn1cbiJdfQ==
\No newline at end of file