table 6.0.8 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +53 -1
  2. package/dist/src/alignString.js +64 -0
  3. package/dist/src/alignTableData.js +21 -0
  4. package/dist/src/calculateCellHeight.js +17 -0
  5. package/dist/src/calculateCellWidthIndex.js +17 -0
  6. package/dist/src/calculateMaximumColumnWidthIndex.js +25 -0
  7. package/dist/src/calculateRowHeightIndex.js +30 -0
  8. package/dist/src/createStream.js +74 -0
  9. package/dist/src/drawBorder.js +55 -0
  10. package/dist/src/drawHorizontalContent.js +19 -0
  11. package/dist/src/drawRow.js +17 -0
  12. package/dist/src/drawTable.js +38 -0
  13. package/dist/src/getBorderCharacters.js +83 -0
  14. package/dist/{index.js.flow → src/index.d.ts} +2 -6
  15. package/dist/src/index.js +24 -0
  16. package/dist/src/makeConfig.js +59 -0
  17. package/dist/src/makeStreamConfig.js +60 -0
  18. package/dist/src/mapDataUsingRowHeightIndex.js +27 -0
  19. package/dist/src/padTableData.js +11 -0
  20. package/dist/src/stringifyTableData.js +8 -0
  21. package/dist/src/table.js +28 -0
  22. package/dist/src/truncateTableData.js +20 -0
  23. package/dist/src/types/api.d.ts +99 -0
  24. package/dist/src/types/api.js +3 -0
  25. package/dist/src/types/internal.js +3 -0
  26. package/dist/src/validateConfig.js +27 -0
  27. package/dist/src/validateTableData.js +29 -0
  28. package/dist/{validators.js → src/validators.js} +54 -14
  29. package/dist/src/wrapCell.js +33 -0
  30. package/dist/src/wrapString.js +25 -0
  31. package/dist/src/wrapWord.js +29 -0
  32. package/package.json +33 -26
  33. package/dist/alignString.js +0 -108
  34. package/dist/alignString.js.flow +0 -97
  35. package/dist/alignString.js.map +0 -1
  36. package/dist/alignTableData.js +0 -35
  37. package/dist/alignTableData.js.flow +0 -21
  38. package/dist/alignTableData.js.map +0 -1
  39. package/dist/calculateCellHeight.js +0 -38
  40. package/dist/calculateCellHeight.js.flow +0 -24
  41. package/dist/calculateCellHeight.js.map +0 -1
  42. package/dist/calculateCellWidthIndex.js +0 -28
  43. package/dist/calculateCellWidthIndex.js.flow +0 -17
  44. package/dist/calculateCellWidthIndex.js.map +0 -1
  45. package/dist/calculateMaximumColumnWidthIndex.js +0 -37
  46. package/dist/calculateMaximumColumnWidthIndex.js.flow +0 -27
  47. package/dist/calculateMaximumColumnWidthIndex.js.map +0 -1
  48. package/dist/calculateRowHeightIndex.js +0 -46
  49. package/dist/calculateRowHeightIndex.js.flow +0 -36
  50. package/dist/calculateRowHeightIndex.js.map +0 -1
  51. package/dist/createStream.js +0 -125
  52. package/dist/createStream.js.flow +0 -125
  53. package/dist/createStream.js.map +0 -1
  54. package/dist/drawBorder.js +0 -110
  55. package/dist/drawBorder.js.flow +0 -101
  56. package/dist/drawBorder.js.map +0 -1
  57. package/dist/drawRow.js +0 -26
  58. package/dist/drawRow.js.flow +0 -15
  59. package/dist/drawRow.js.map +0 -1
  60. package/dist/drawTable.js +0 -59
  61. package/dist/drawTable.js.flow +0 -53
  62. package/dist/drawTable.js.map +0 -1
  63. package/dist/getBorderCharacters.js +0 -119
  64. package/dist/getBorderCharacters.js.flow +0 -120
  65. package/dist/getBorderCharacters.js.map +0 -1
  66. package/dist/index.js +0 -32
  67. package/dist/index.js.map +0 -1
  68. package/dist/makeConfig.js +0 -92
  69. package/dist/makeConfig.js.flow +0 -76
  70. package/dist/makeConfig.js.map +0 -1
  71. package/dist/makeStreamConfig.js +0 -98
  72. package/dist/makeStreamConfig.js.flow +0 -83
  73. package/dist/makeStreamConfig.js.map +0 -1
  74. package/dist/mapDataUsingRowHeightIndex.js +0 -42
  75. package/dist/mapDataUsingRowHeightIndex.js.flow +0 -34
  76. package/dist/mapDataUsingRowHeightIndex.js.map +0 -1
  77. package/dist/padTableData.js +0 -24
  78. package/dist/padTableData.js.flow +0 -14
  79. package/dist/padTableData.js.map +0 -1
  80. package/dist/schemas/config.json +0 -23
  81. package/dist/schemas/shared.json +0 -98
  82. package/dist/schemas/streamConfig.json +0 -20
  83. package/dist/stringifyTableData.js +0 -22
  84. package/dist/stringifyTableData.js.flow +0 -11
  85. package/dist/stringifyTableData.js.map +0 -1
  86. package/dist/table.js +0 -110
  87. package/dist/table.js.flow +0 -96
  88. package/dist/table.js.map +0 -1
  89. package/dist/truncateTableData.js +0 -30
  90. package/dist/truncateTableData.js.flow +0 -17
  91. package/dist/truncateTableData.js.map +0 -1
  92. package/dist/validateConfig.js +0 -41
  93. package/dist/validateConfig.js.flow +0 -27
  94. package/dist/validateConfig.js.map +0 -1
  95. package/dist/validateTableData.js +0 -55
  96. package/dist/validateTableData.js.flow +0 -44
  97. package/dist/validateTableData.js.map +0 -1
  98. package/dist/wrapCell.js +0 -48
  99. package/dist/wrapCell.js.flow +0 -35
  100. package/dist/wrapCell.js.map +0 -1
  101. package/dist/wrapString.js +0 -40
  102. package/dist/wrapString.js.flow +0 -29
  103. package/dist/wrapString.js.map +0 -1
  104. package/dist/wrapWord.js +0 -47
  105. package/dist/wrapWord.js.flow +0 -39
  106. package/dist/wrapWord.js.map +0 -1
@@ -1,55 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- /**
9
- * @typedef {string} cell
10
- */
11
-
12
- /**
13
- * @typedef {cell[]} validateData~column
14
- */
15
-
16
- /**
17
- * @param {column[]} rows
18
- * @returns {undefined}
19
- */
20
- const validateTableData = rows => {
21
- if (!Array.isArray(rows)) {
22
- throw new TypeError('Table data must be an array.');
23
- }
24
-
25
- if (rows.length === 0) {
26
- throw new Error('Table must define at least one row.');
27
- }
28
-
29
- if (rows[0].length === 0) {
30
- throw new Error('Table must define at least one column.');
31
- }
32
-
33
- const columnNumber = rows[0].length;
34
-
35
- for (const cells of rows) {
36
- if (!Array.isArray(cells)) {
37
- throw new TypeError('Table row data must be an array.');
38
- }
39
-
40
- if (cells.length !== columnNumber) {
41
- throw new Error('Table must have a consistent number of cells.');
42
- }
43
-
44
- for (const cell of cells) {
45
- // eslint-disable-next-line no-control-regex
46
- if (/[\u0001-\u0006\u0008\u0009\u000B-\u001A]/.test(cell)) {
47
- throw new Error('Table data must not contain control characters.');
48
- }
49
- }
50
- }
51
- };
52
-
53
- var _default = validateTableData;
54
- exports.default = _default;
55
- //# sourceMappingURL=validateTableData.js.map
@@ -1,44 +0,0 @@
1
- /**
2
- * @typedef {string} cell
3
- */
4
-
5
- /**
6
- * @typedef {cell[]} validateData~column
7
- */
8
-
9
- /**
10
- * @param {column[]} rows
11
- * @returns {undefined}
12
- */
13
- export default (rows) => {
14
- if (!Array.isArray(rows)) {
15
- throw new TypeError('Table data must be an array.');
16
- }
17
-
18
- if (rows.length === 0) {
19
- throw new Error('Table must define at least one row.');
20
- }
21
-
22
- if (rows[0].length === 0) {
23
- throw new Error('Table must define at least one column.');
24
- }
25
-
26
- const columnNumber = rows[0].length;
27
-
28
- for (const cells of rows) {
29
- if (!Array.isArray(cells)) {
30
- throw new TypeError('Table row data must be an array.');
31
- }
32
-
33
- if (cells.length !== columnNumber) {
34
- throw new Error('Table must have a consistent number of cells.');
35
- }
36
-
37
- for (const cell of cells) {
38
- // eslint-disable-next-line no-control-regex
39
- if (/[\u0001-\u0006\u0008\u0009\u000B-\u001A]/.test(cell)) {
40
- throw new Error('Table data must not contain control characters.');
41
- }
42
- }
43
- }
44
- };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/validateTableData.js"],"names":["rows","Array","isArray","TypeError","length","Error","columnNumber","cells","cell","test"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;0BACgBA,I,IAAS;AACvB,MAAI,CAACC,KAAK,CAACC,OAAN,CAAcF,IAAd,CAAL,EAA0B;AACxB,UAAM,IAAIG,SAAJ,CAAc,8BAAd,CAAN;AACD;;AAED,MAAIH,IAAI,CAACI,MAAL,KAAgB,CAApB,EAAuB;AACrB,UAAM,IAAIC,KAAJ,CAAU,qCAAV,CAAN;AACD;;AAED,MAAIL,IAAI,CAAC,CAAD,CAAJ,CAAQI,MAAR,KAAmB,CAAvB,EAA0B;AACxB,UAAM,IAAIC,KAAJ,CAAU,wCAAV,CAAN;AACD;;AAED,QAAMC,YAAY,GAAGN,IAAI,CAAC,CAAD,CAAJ,CAAQI,MAA7B;;AAEA,OAAK,MAAMG,KAAX,IAAoBP,IAApB,EAA0B;AACxB,QAAI,CAACC,KAAK,CAACC,OAAN,CAAcK,KAAd,CAAL,EAA2B;AACzB,YAAM,IAAIJ,SAAJ,CAAc,kCAAd,CAAN;AACD;;AAED,QAAII,KAAK,CAACH,MAAN,KAAiBE,YAArB,EAAmC;AACjC,YAAM,IAAID,KAAJ,CAAU,+CAAV,CAAN;AACD;;AAED,SAAK,MAAMG,IAAX,IAAmBD,KAAnB,EAA0B;AACxB;AACA,UAAI,2CAA2CE,IAA3C,CAAgDD,IAAhD,CAAJ,EAA2D;AACzD,cAAM,IAAIH,KAAJ,CAAU,iDAAV,CAAN;AACD;AACF;AACF;AACF,C","sourcesContent":["/**\n * @typedef {string} cell\n */\n\n/**\n * @typedef {cell[]} validateData~column\n */\n\n/**\n * @param {column[]} rows\n * @returns {undefined}\n */\nexport default (rows) => {\n if (!Array.isArray(rows)) {\n throw new TypeError('Table data must be an array.');\n }\n\n if (rows.length === 0) {\n throw new Error('Table must define at least one row.');\n }\n\n if (rows[0].length === 0) {\n throw new Error('Table must define at least one column.');\n }\n\n const columnNumber = rows[0].length;\n\n for (const cells of rows) {\n if (!Array.isArray(cells)) {\n throw new TypeError('Table row data must be an array.');\n }\n\n if (cells.length !== columnNumber) {\n throw new Error('Table must have a consistent number of cells.');\n }\n\n for (const cell of cells) {\n // eslint-disable-next-line no-control-regex\n if (/[\\u0001-\\u0006\\u0008\\u0009\\u000B-\\u001A]/.test(cell)) {\n throw new Error('Table data must not contain control characters.');\n }\n }\n }\n};\n"],"file":"validateTableData.js"}
package/dist/wrapCell.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _wrapString = _interopRequireDefault(require("./wrapString"));
9
-
10
- var _wrapWord = _interopRequireDefault(require("./wrapWord"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * Wrap a single cell value into a list of lines
16
- *
17
- * Always wraps on newlines, for the remainder uses either word or string wrapping
18
- * depending on user configuration.
19
- *
20
- * @param {string} cellValue
21
- * @param {number} columnWidth
22
- * @param {boolean} useWrapWord
23
- * @returns {Array}
24
- */
25
- const wrapCell = (cellValue, columnWidth, useWrapWord) => {
26
- // First split on literal newlines
27
- const cellLines = cellValue.split('\n'); // Then iterate over the list and word-wrap every remaining line if necessary.
28
-
29
- for (let lineNr = 0; lineNr < cellLines.length;) {
30
- let lineChunks;
31
-
32
- if (useWrapWord) {
33
- lineChunks = (0, _wrapWord.default)(cellLines[lineNr], columnWidth);
34
- } else {
35
- lineChunks = (0, _wrapString.default)(cellLines[lineNr], columnWidth);
36
- } // Replace our original array element with whatever the wrapping returned
37
-
38
-
39
- cellLines.splice(lineNr, 1, ...lineChunks);
40
- lineNr += lineChunks.length;
41
- }
42
-
43
- return cellLines;
44
- };
45
-
46
- var _default = wrapCell;
47
- exports.default = _default;
48
- //# sourceMappingURL=wrapCell.js.map
@@ -1,35 +0,0 @@
1
- import wrapString from './wrapString';
2
- import wrapWord from './wrapWord';
3
-
4
- /**
5
- * Wrap a single cell value into a list of lines
6
- *
7
- * Always wraps on newlines, for the remainder uses either word or string wrapping
8
- * depending on user configuration.
9
- *
10
- * @param {string} cellValue
11
- * @param {number} columnWidth
12
- * @param {boolean} useWrapWord
13
- * @returns {Array}
14
- */
15
- export default (cellValue, columnWidth, useWrapWord) => {
16
- // First split on literal newlines
17
- const cellLines = cellValue.split('\n');
18
-
19
- // Then iterate over the list and word-wrap every remaining line if necessary.
20
- for (let lineNr = 0; lineNr < cellLines.length;) {
21
- let lineChunks;
22
-
23
- if (useWrapWord) {
24
- lineChunks = wrapWord(cellLines[lineNr], columnWidth);
25
- } else {
26
- lineChunks = wrapString(cellLines[lineNr], columnWidth);
27
- }
28
-
29
- // Replace our original array element with whatever the wrapping returned
30
- cellLines.splice(lineNr, 1, ...lineChunks);
31
- lineNr += lineChunks.length;
32
- }
33
-
34
- return cellLines;
35
- };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/wrapCell.js"],"names":["cellValue","columnWidth","useWrapWord","cellLines","split","lineNr","length","lineChunks","splice"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;kBACgBA,S,EAAWC,W,EAAaC,W,KAAgB;AACtD;AACA,QAAMC,SAAS,GAAGH,SAAS,CAACI,KAAV,CAAgB,IAAhB,CAAlB,CAFsD,CAItD;;AACA,OAAK,IAAIC,MAAM,GAAG,CAAlB,EAAqBA,MAAM,GAAGF,SAAS,CAACG,MAAxC,GAAiD;AAC/C,QAAIC,UAAJ;;AAEA,QAAIL,WAAJ,EAAiB;AACfK,MAAAA,UAAU,GAAG,uBAASJ,SAAS,CAACE,MAAD,CAAlB,EAA4BJ,WAA5B,CAAb;AACD,KAFD,MAEO;AACLM,MAAAA,UAAU,GAAG,yBAAWJ,SAAS,CAACE,MAAD,CAApB,EAA8BJ,WAA9B,CAAb;AACD,KAP8C,CAS/C;;;AACAE,IAAAA,SAAS,CAACK,MAAV,CAAiBH,MAAjB,EAAyB,CAAzB,EAA4B,GAAGE,UAA/B;AACAF,IAAAA,MAAM,IAAIE,UAAU,CAACD,MAArB;AACD;;AAED,SAAOH,SAAP;AACD,C","sourcesContent":["import wrapString from './wrapString';\nimport wrapWord from './wrapWord';\n\n/**\n * Wrap a single cell value into a list of lines\n *\n * Always wraps on newlines, for the remainder uses either word or string wrapping\n * depending on user configuration.\n *\n * @param {string} cellValue\n * @param {number} columnWidth\n * @param {boolean} useWrapWord\n * @returns {Array}\n */\nexport default (cellValue, columnWidth, useWrapWord) => {\n // First split on literal newlines\n const cellLines = cellValue.split('\\n');\n\n // Then iterate over the list and word-wrap every remaining line if necessary.\n for (let lineNr = 0; lineNr < cellLines.length;) {\n let lineChunks;\n\n if (useWrapWord) {\n lineChunks = wrapWord(cellLines[lineNr], columnWidth);\n } else {\n lineChunks = wrapString(cellLines[lineNr], columnWidth);\n }\n\n // Replace our original array element with whatever the wrapping returned\n cellLines.splice(lineNr, 1, ...lineChunks);\n lineNr += lineChunks.length;\n }\n\n return cellLines;\n};\n"],"file":"wrapCell.js"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _sliceAnsi = _interopRequireDefault(require("slice-ansi"));
9
-
10
- var _stringWidth = _interopRequireDefault(require("string-width"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * Creates an array of strings split into groups the length of size.
16
- * This function works with strings that contain ASCII characters.
17
- *
18
- * wrapText is different from would-be "chunk" implementation
19
- * in that whitespace characters that occur on a chunk size limit are trimmed.
20
- *
21
- * @param {string} subject
22
- * @param {number} size
23
- * @returns {Array}
24
- */
25
- const wrapString = (subject, size) => {
26
- let subjectSlice;
27
- subjectSlice = subject;
28
- const chunks = [];
29
-
30
- do {
31
- chunks.push((0, _sliceAnsi.default)(subjectSlice, 0, size));
32
- subjectSlice = (0, _sliceAnsi.default)(subjectSlice, size).trim();
33
- } while ((0, _stringWidth.default)(subjectSlice));
34
-
35
- return chunks;
36
- };
37
-
38
- var _default = wrapString;
39
- exports.default = _default;
40
- //# sourceMappingURL=wrapString.js.map
@@ -1,29 +0,0 @@
1
- import slice from 'slice-ansi';
2
- import stringWidth from 'string-width';
3
-
4
- /**
5
- * Creates an array of strings split into groups the length of size.
6
- * This function works with strings that contain ASCII characters.
7
- *
8
- * wrapText is different from would-be "chunk" implementation
9
- * in that whitespace characters that occur on a chunk size limit are trimmed.
10
- *
11
- * @param {string} subject
12
- * @param {number} size
13
- * @returns {Array}
14
- */
15
- export default (subject, size) => {
16
- let subjectSlice;
17
-
18
- subjectSlice = subject;
19
-
20
- const chunks = [];
21
-
22
- do {
23
- chunks.push(slice(subjectSlice, 0, size));
24
-
25
- subjectSlice = slice(subjectSlice, size).trim();
26
- } while (stringWidth(subjectSlice));
27
-
28
- return chunks;
29
- };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/wrapString.js"],"names":["subject","size","subjectSlice","chunks","push","trim"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;oBACgBA,O,EAASC,I,KAAS;AAChC,MAAIC,YAAJ;AAEAA,EAAAA,YAAY,GAAGF,OAAf;AAEA,QAAMG,MAAM,GAAG,EAAf;;AAEA,KAAG;AACDA,IAAAA,MAAM,CAACC,IAAP,CAAY,wBAAMF,YAAN,EAAoB,CAApB,EAAuBD,IAAvB,CAAZ;AAEAC,IAAAA,YAAY,GAAG,wBAAMA,YAAN,EAAoBD,IAApB,EAA0BI,IAA1B,EAAf;AACD,GAJD,QAIS,0BAAYH,YAAZ,CAJT;;AAMA,SAAOC,MAAP;AACD,C","sourcesContent":["import slice from 'slice-ansi';\nimport stringWidth from 'string-width';\n\n/**\n * Creates an array of strings split into groups the length of size.\n * This function works with strings that contain ASCII characters.\n *\n * wrapText is different from would-be \"chunk\" implementation\n * in that whitespace characters that occur on a chunk size limit are trimmed.\n *\n * @param {string} subject\n * @param {number} size\n * @returns {Array}\n */\nexport default (subject, size) => {\n let subjectSlice;\n\n subjectSlice = subject;\n\n const chunks = [];\n\n do {\n chunks.push(slice(subjectSlice, 0, size));\n\n subjectSlice = slice(subjectSlice, size).trim();\n } while (stringWidth(subjectSlice));\n\n return chunks;\n};\n"],"file":"wrapString.js"}
package/dist/wrapWord.js DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _sliceAnsi = _interopRequireDefault(require("slice-ansi"));
9
-
10
- var _stringWidth = _interopRequireDefault(require("string-width"));
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /**
15
- * @param {string} input
16
- * @param {number} size
17
- * @returns {Array}
18
- */
19
- const wrapWord = (input, size) => {
20
- let subject;
21
- subject = input;
22
- const chunks = []; // https://regex101.com/r/gY5kZ1/1
23
-
24
- const re = new RegExp('(^.{1,' + size + '}(\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\|/|_|\\.|,|;|-))');
25
-
26
- do {
27
- let chunk;
28
- chunk = subject.match(re);
29
-
30
- if (chunk) {
31
- chunk = chunk[0];
32
- subject = (0, _sliceAnsi.default)(subject, (0, _stringWidth.default)(chunk));
33
- chunk = chunk.trim();
34
- } else {
35
- chunk = (0, _sliceAnsi.default)(subject, 0, size);
36
- subject = (0, _sliceAnsi.default)(subject, size);
37
- }
38
-
39
- chunks.push(chunk);
40
- } while ((0, _stringWidth.default)(subject));
41
-
42
- return chunks;
43
- };
44
-
45
- var _default = wrapWord;
46
- exports.default = _default;
47
- //# sourceMappingURL=wrapWord.js.map
@@ -1,39 +0,0 @@
1
- import slice from 'slice-ansi';
2
- import stringWidth from 'string-width';
3
-
4
- /**
5
- * @param {string} input
6
- * @param {number} size
7
- * @returns {Array}
8
- */
9
- export default (input, size) => {
10
- let subject;
11
-
12
- subject = input;
13
-
14
- const chunks = [];
15
-
16
- // https://regex101.com/r/gY5kZ1/1
17
- const re = new RegExp('(^.{1,' + size + '}(\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\|/|_|\\.|,|;|-))');
18
-
19
- do {
20
- let chunk;
21
-
22
- chunk = subject.match(re);
23
-
24
- if (chunk) {
25
- chunk = chunk[0];
26
-
27
- subject = slice(subject, stringWidth(chunk));
28
-
29
- chunk = chunk.trim();
30
- } else {
31
- chunk = slice(subject, 0, size);
32
- subject = slice(subject, size);
33
- }
34
-
35
- chunks.push(chunk);
36
- } while (stringWidth(subject));
37
-
38
- return chunks;
39
- };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/wrapWord.js"],"names":["input","size","subject","chunks","re","RegExp","chunk","match","trim","push"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA;kBACgBA,K,EAAOC,I,KAAS;AAC9B,MAAIC,OAAJ;AAEAA,EAAAA,OAAO,GAAGF,KAAV;AAEA,QAAMG,MAAM,GAAG,EAAf,CAL8B,CAO9B;;AACA,QAAMC,EAAE,GAAG,IAAIC,MAAJ,CAAW,WAAWJ,IAAX,GAAkB,mBAAlB,IAAyCA,IAAI,GAAG,CAAhD,IAAqD,wBAAhE,CAAX;;AAEA,KAAG;AACD,QAAIK,KAAJ;AAEAA,IAAAA,KAAK,GAAGJ,OAAO,CAACK,KAAR,CAAcH,EAAd,CAAR;;AAEA,QAAIE,KAAJ,EAAW;AACTA,MAAAA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAb;AAEAJ,MAAAA,OAAO,GAAG,wBAAMA,OAAN,EAAe,0BAAYI,KAAZ,CAAf,CAAV;AAEAA,MAAAA,KAAK,GAAGA,KAAK,CAACE,IAAN,EAAR;AACD,KAND,MAMO;AACLF,MAAAA,KAAK,GAAG,wBAAMJ,OAAN,EAAe,CAAf,EAAkBD,IAAlB,CAAR;AACAC,MAAAA,OAAO,GAAG,wBAAMA,OAAN,EAAeD,IAAf,CAAV;AACD;;AAEDE,IAAAA,MAAM,CAACM,IAAP,CAAYH,KAAZ;AACD,GAjBD,QAiBS,0BAAYJ,OAAZ,CAjBT;;AAmBA,SAAOC,MAAP;AACD,C","sourcesContent":["import slice from 'slice-ansi';\nimport stringWidth from 'string-width';\n\n/**\n * @param {string} input\n * @param {number} size\n * @returns {Array}\n */\nexport default (input, size) => {\n let subject;\n\n subject = input;\n\n const chunks = [];\n\n // https://regex101.com/r/gY5kZ1/1\n const re = new RegExp('(^.{1,' + size + '}(\\\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\\\\\|/|_|\\\\.|,|;|-))');\n\n do {\n let chunk;\n\n chunk = subject.match(re);\n\n if (chunk) {\n chunk = chunk[0];\n\n subject = slice(subject, stringWidth(chunk));\n\n chunk = chunk.trim();\n } else {\n chunk = slice(subject, 0, size);\n subject = slice(subject, size);\n }\n\n chunks.push(chunk);\n } while (stringWidth(subject));\n\n return chunks;\n};\n"],"file":"wrapWord.js"}