table 4.0.3 → 5.1.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.
- package/LICENSE +1 -1
- package/README.md +10 -6
- package/dist/alignString.js +20 -20
- package/dist/alignString.js.flow +96 -0
- package/dist/alignString.js.map +1 -0
- package/dist/alignTableData.js +12 -11
- package/dist/alignTableData.js.flow +21 -0
- package/dist/alignTableData.js.map +1 -0
- package/dist/calculateCellHeight.js +14 -17
- package/dist/calculateCellHeight.js.flow +29 -0
- package/dist/calculateCellHeight.js.map +1 -0
- package/dist/calculateCellWidthIndex.js +10 -7
- package/dist/calculateCellWidthIndex.js.flow +13 -0
- package/dist/calculateCellWidthIndex.js.map +1 -0
- package/dist/calculateMaximumColumnWidthIndex.js +11 -11
- package/dist/calculateMaximumColumnWidthIndex.js.flow +27 -0
- package/dist/calculateMaximumColumnWidthIndex.js.map +1 -0
- package/dist/calculateRowHeightIndex.js +15 -19
- package/dist/calculateRowHeightIndex.js.flow +35 -0
- package/dist/calculateRowHeightIndex.js.map +1 -0
- package/dist/createStream.js +35 -68
- package/dist/createStream.js.flow +124 -0
- package/dist/createStream.js.map +1 -0
- package/dist/drawBorder.js +16 -8
- package/dist/drawBorder.js.flow +95 -0
- package/dist/drawBorder.js.map +1 -0
- package/dist/drawRow.js +8 -3
- package/dist/drawRow.js.flow +15 -0
- package/dist/drawRow.js.map +1 -0
- package/dist/drawTable.js +11 -12
- package/dist/drawTable.js.flow +52 -0
- package/dist/drawTable.js.map +1 -0
- package/dist/getBorderCharacters.js +8 -15
- package/dist/getBorderCharacters.js.flow +120 -0
- package/dist/getBorderCharacters.js.map +1 -0
- package/dist/index.js +23 -15
- package/dist/index.js.flow +9 -0
- package/dist/index.js.map +1 -0
- package/dist/makeConfig.js +21 -30
- package/dist/makeConfig.js.flow +72 -0
- package/dist/makeConfig.js.map +1 -0
- package/dist/makeStreamConfig.js +19 -27
- package/dist/makeStreamConfig.js.flow +83 -0
- package/dist/makeStreamConfig.js.map +1 -0
- package/dist/mapDataUsingRowHeightIndex.js +17 -22
- package/dist/mapDataUsingRowHeightIndex.js.flow +41 -0
- package/dist/mapDataUsingRowHeightIndex.js.map +1 -0
- package/dist/padTableData.js +8 -4
- package/dist/padTableData.js.flow +14 -0
- package/dist/padTableData.js.map +1 -0
- package/dist/schemas/config.json +1 -1
- package/dist/schemas/streamConfig.json +1 -1
- package/dist/stringifyTableData.js +7 -2
- package/dist/stringifyTableData.js.flow +11 -0
- package/dist/stringifyTableData.js.map +1 -0
- package/dist/table.js +29 -53
- package/dist/table.js.flow +95 -0
- package/dist/table.js.map +1 -0
- package/dist/truncateTableData.js +10 -7
- package/dist/truncateTableData.js.flow +17 -0
- package/dist/truncateTableData.js.map +1 -0
- package/dist/validateConfig.js +4 -5
- package/dist/validateConfig.js.flow +34 -0
- package/dist/validateConfig.js.map +1 -0
- package/dist/validateStreamConfig.js +4 -5
- package/dist/validateTableData.js +62 -15
- package/dist/validateTableData.js.flow +46 -0
- package/dist/validateTableData.js.map +1 -0
- package/dist/wrapString.js +13 -15
- package/dist/wrapString.js.flow +29 -0
- package/dist/wrapString.js.map +1 -0
- package/dist/wrapWord.js +15 -20
- package/dist/wrapWord.js.flow +39 -0
- package/dist/wrapWord.js.map +1 -0
- package/package.json +42 -30
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// eslint-disable-next-line import/default
|
|
2
|
+
import validateConfig from '../dist/validateConfig';
|
|
3
|
+
// eslint-disable-next-line import/default
|
|
4
|
+
import validateStreamConfig from '../dist/validateStreamConfig';
|
|
5
|
+
|
|
6
|
+
const validate = {
|
|
7
|
+
'config.json': validateConfig,
|
|
8
|
+
'streamConfig.json': validateStreamConfig
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @param {string} schemaId
|
|
13
|
+
* @param {formatData~config} config
|
|
14
|
+
* @returns {undefined}
|
|
15
|
+
*/
|
|
16
|
+
export default (schemaId, config = {}) => {
|
|
17
|
+
if (!validate[schemaId](config)) {
|
|
18
|
+
const errors = validate[schemaId].errors.map((error) => {
|
|
19
|
+
return {
|
|
20
|
+
dataPath: error.dataPath,
|
|
21
|
+
message: error.message,
|
|
22
|
+
params: error.params,
|
|
23
|
+
schemaPath: error.schemaPath
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
/* eslint-disable no-console */
|
|
28
|
+
console.log('config', config);
|
|
29
|
+
console.log('errors', errors);
|
|
30
|
+
/* eslint-enable no-console */
|
|
31
|
+
|
|
32
|
+
throw new Error('Invalid config.');
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/validateConfig.js"],"names":["validate","validateConfig","validateStreamConfig","schemaId","config","errors","map","error","dataPath","message","params","schemaPath","console","log","Error"],"mappings":";;;;;;;AACA;;AAEA;;;;AAHA;AAEA;AAGA,MAAMA,QAAQ,GAAG;AACf,iBAAeC,uBADA;AAEf,uBAAqBC;AAFN,CAAjB;AAKA;;;;;;yBAKgBC,Q,EAAUC,MAAM,GAAG,E,KAAO;AACxC,MAAI,CAACJ,QAAQ,CAACG,QAAD,CAAR,CAAmBC,MAAnB,CAAL,EAAiC;AAC/B,UAAMC,MAAM,GAAGL,QAAQ,CAACG,QAAD,CAAR,CAAmBE,MAAnB,CAA0BC,GAA1B,CAA+BC,KAAD,IAAW;AACtD,aAAO;AACLC,QAAAA,QAAQ,EAAED,KAAK,CAACC,QADX;AAELC,QAAAA,OAAO,EAAEF,KAAK,CAACE,OAFV;AAGLC,QAAAA,MAAM,EAAEH,KAAK,CAACG,MAHT;AAILC,QAAAA,UAAU,EAAEJ,KAAK,CAACI;AAJb,OAAP;AAMD,KAPc,CAAf;AASA;;AACAC,IAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ,EAAsBT,MAAtB;AACAQ,IAAAA,OAAO,CAACC,GAAR,CAAY,QAAZ,EAAsBR,MAAtB;AACA;;AAEA,UAAM,IAAIS,KAAJ,CAAU,iBAAV,CAAN;AACD;AACF,C","sourcesContent":["// eslint-disable-next-line import/default\nimport validateConfig from '../dist/validateConfig';\n// eslint-disable-next-line import/default\nimport validateStreamConfig from '../dist/validateStreamConfig';\n\nconst validate = {\n 'config.json': validateConfig,\n 'streamConfig.json': validateStreamConfig\n};\n\n/**\n * @param {string} schemaId\n * @param {formatData~config} config\n * @returns {undefined}\n */\nexport default (schemaId, config = {}) => {\n if (!validate[schemaId](config)) {\n const errors = validate[schemaId].errors.map((error) => {\n return {\n dataPath: error.dataPath,\n message: error.message,\n params: error.params,\n schemaPath: error.schemaPath\n };\n });\n\n /* eslint-disable no-console */\n console.log('config', config);\n console.log('errors', errors);\n /* eslint-enable no-console */\n\n throw new Error('Invalid config.');\n }\n};\n"],"file":"validateConfig.js"}
|
|
@@ -14,7 +14,7 @@ var validate = (function() {
|
|
|
14
14
|
var errs__0 = errors;
|
|
15
15
|
var valid1 = true;
|
|
16
16
|
for (var key0 in data) {
|
|
17
|
-
var isAdditional0 = !(false || validate.schema.properties
|
|
17
|
+
var isAdditional0 = !(false || validate.schema.properties.hasOwnProperty(key0));
|
|
18
18
|
if (isAdditional0) {
|
|
19
19
|
valid1 = false;
|
|
20
20
|
var err = {
|
|
@@ -344,7 +344,7 @@ var validate = (function() {
|
|
|
344
344
|
var errs__0 = errors;
|
|
345
345
|
var valid1 = true;
|
|
346
346
|
for (var key0 in data) {
|
|
347
|
-
var isAdditional0 = !(false ||
|
|
347
|
+
var isAdditional0 = !(false || key0 == 'alignment' || key0 == 'width' || key0 == 'wrapWord' || key0 == 'truncate' || key0 == 'paddingLeft' || key0 == 'paddingRight');
|
|
348
348
|
if (isAdditional0) {
|
|
349
349
|
valid1 = false;
|
|
350
350
|
var err = {
|
|
@@ -385,8 +385,7 @@ var validate = (function() {
|
|
|
385
385
|
if (equal(data1, schema1[i1])) {
|
|
386
386
|
valid1 = true;
|
|
387
387
|
break;
|
|
388
|
-
}
|
|
389
|
-
if (!valid1) {
|
|
388
|
+
} if (!valid1) {
|
|
390
389
|
var err = {
|
|
391
390
|
keyword: 'enum',
|
|
392
391
|
dataPath: (dataPath || '') + '.alignment',
|
|
@@ -628,7 +627,7 @@ var validate = (function() {
|
|
|
628
627
|
})();
|
|
629
628
|
validate.schema = {
|
|
630
629
|
"$id": "streamConfig.json",
|
|
631
|
-
"$schema": "http://json-schema.org/draft-
|
|
630
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
632
631
|
"type": "object",
|
|
633
632
|
"properties": {
|
|
634
633
|
"border": {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* @typedef {string} cell
|
|
@@ -16,7 +17,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
16
17
|
* @param {column[]} rows
|
|
17
18
|
* @returns {undefined}
|
|
18
19
|
*/
|
|
19
|
-
|
|
20
|
+
const validateTableData = rows => {
|
|
20
21
|
if (!Array.isArray(rows)) {
|
|
21
22
|
throw new TypeError('Table data must be an array.');
|
|
22
23
|
}
|
|
@@ -30,22 +31,68 @@ exports.default = rows => {
|
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
const columnNumber = rows[0].length;
|
|
34
|
+
var _iteratorNormalCompletion = true;
|
|
35
|
+
var _didIteratorError = false;
|
|
36
|
+
var _iteratorError = undefined;
|
|
33
37
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
+
try {
|
|
39
|
+
for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
40
|
+
const cells = _step.value;
|
|
38
41
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
if (!Array.isArray(cells)) {
|
|
43
|
+
throw new TypeError('Table row data must be an array.');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (cells.length !== columnNumber) {
|
|
47
|
+
throw new Error('Table must have a consistent number of cells.');
|
|
48
|
+
} // @todo Make an exception for newline characters.
|
|
49
|
+
// @see https://github.com/gajus/table/issues/9
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
var _iteratorNormalCompletion2 = true;
|
|
53
|
+
var _didIteratorError2 = false;
|
|
54
|
+
var _iteratorError2 = undefined;
|
|
42
55
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
try {
|
|
57
|
+
for (var _iterator2 = cells[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
|
58
|
+
const cell = _step2.value;
|
|
59
|
+
|
|
60
|
+
// eslint-disable-next-line no-control-regex
|
|
61
|
+
if (/[\u0001-\u001A]/.test(cell)) {
|
|
62
|
+
throw new Error('Table data must not contain control characters.');
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
} catch (err) {
|
|
66
|
+
_didIteratorError2 = true;
|
|
67
|
+
_iteratorError2 = err;
|
|
68
|
+
} finally {
|
|
69
|
+
try {
|
|
70
|
+
if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
|
|
71
|
+
_iterator2.return();
|
|
72
|
+
}
|
|
73
|
+
} finally {
|
|
74
|
+
if (_didIteratorError2) {
|
|
75
|
+
throw _iteratorError2;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
} catch (err) {
|
|
81
|
+
_didIteratorError = true;
|
|
82
|
+
_iteratorError = err;
|
|
83
|
+
} finally {
|
|
84
|
+
try {
|
|
85
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
86
|
+
_iterator.return();
|
|
87
|
+
}
|
|
88
|
+
} finally {
|
|
89
|
+
if (_didIteratorError) {
|
|
90
|
+
throw _iteratorError;
|
|
48
91
|
}
|
|
49
92
|
}
|
|
50
93
|
}
|
|
51
|
-
};
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
var _default = validateTableData;
|
|
97
|
+
exports.default = _default;
|
|
98
|
+
//# sourceMappingURL=validateTableData.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
// @todo Make an exception for newline characters.
|
|
38
|
+
// @see https://github.com/gajus/table/issues/9
|
|
39
|
+
for (const cell of cells) {
|
|
40
|
+
// eslint-disable-next-line no-control-regex
|
|
41
|
+
if (/[\u0001-\u001A]/.test(cell)) {
|
|
42
|
+
throw new Error('Table data must not contain control characters.');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/validateTableData.js"],"names":["rows","Array","isArray","TypeError","length","Error","columnNumber","cells","cell","test"],"mappings":";;;;;;;AAAA;;;;AAIA;;;;AAIA;;;;0BAIgBA,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;AAbuB;AAAA;AAAA;;AAAA;AAevB,yBAAoBJ,IAApB,8HAA0B;AAAA,YAAfO,KAAe;;AACxB,UAAI,CAACN,KAAK,CAACC,OAAN,CAAcK,KAAd,CAAL,EAA2B;AACzB,cAAM,IAAIJ,SAAJ,CAAc,kCAAd,CAAN;AACD;;AAED,UAAII,KAAK,CAACH,MAAN,KAAiBE,YAArB,EAAmC;AACjC,cAAM,IAAID,KAAJ,CAAU,+CAAV,CAAN;AACD,OAPuB,CASxB;AACA;;;AAVwB;AAAA;AAAA;;AAAA;AAWxB,8BAAmBE,KAAnB,mIAA0B;AAAA,gBAAfC,IAAe;;AACxB;AACA,cAAI,kBAAkBC,IAAlB,CAAuBD,IAAvB,CAAJ,EAAkC;AAChC,kBAAM,IAAIH,KAAJ,CAAU,iDAAV,CAAN;AACD;AACF;AAhBuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiBzB;AAhCsB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiCxB,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 // @todo Make an exception for newline characters.\n // @see https://github.com/gajus/table/issues/9\n for (const cell of cells) {\n // eslint-disable-next-line no-control-regex\n if (/[\\u0001-\\u001A]/.test(cell)) {\n throw new Error('Table data must not contain control characters.');\n }\n }\n }\n};\n"],"file":"validateTableData.js"}
|
package/dist/wrapString.js
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _sliceAnsi = require(
|
|
8
|
+
var _sliceAnsi = _interopRequireDefault(require("slice-ansi"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _stringWidth = require('string-width');
|
|
12
|
-
|
|
13
|
-
var _stringWidth2 = _interopRequireDefault(_stringWidth);
|
|
10
|
+
var _stringWidth = _interopRequireDefault(require("string-width"));
|
|
14
11
|
|
|
15
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
13
|
|
|
@@ -25,18 +22,19 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
25
22
|
* @param {number} size
|
|
26
23
|
* @returns {Array}
|
|
27
24
|
*/
|
|
28
|
-
|
|
25
|
+
const wrapString = (subject, size) => {
|
|
29
26
|
let subjectSlice;
|
|
30
|
-
|
|
31
27
|
subjectSlice = subject;
|
|
32
|
-
|
|
33
28
|
const chunks = [];
|
|
34
29
|
|
|
35
30
|
do {
|
|
36
|
-
chunks.push((0,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} while ((0, _stringWidth2.default)(subjectSlice));
|
|
31
|
+
chunks.push((0, _sliceAnsi.default)(subjectSlice, 0, size));
|
|
32
|
+
subjectSlice = (0, _sliceAnsi.default)(subjectSlice, size).trim();
|
|
33
|
+
} while ((0, _stringWidth.default)(subjectSlice));
|
|
40
34
|
|
|
41
35
|
return chunks;
|
|
42
|
-
};
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var _default = wrapString;
|
|
39
|
+
exports.default = _default;
|
|
40
|
+
//# sourceMappingURL=wrapString.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/wrapString.js"],"names":["subject","size","subjectSlice","chunks","push","trim"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;;;;;;;;;;;oBAWgBA,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
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
6
7
|
|
|
7
|
-
var _sliceAnsi = require(
|
|
8
|
+
var _sliceAnsi = _interopRequireDefault(require("slice-ansi"));
|
|
8
9
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var _stringWidth = require('string-width');
|
|
12
|
-
|
|
13
|
-
var _stringWidth2 = _interopRequireDefault(_stringWidth);
|
|
10
|
+
var _stringWidth = _interopRequireDefault(require("string-width"));
|
|
14
11
|
|
|
15
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
13
|
|
|
@@ -19,34 +16,32 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
19
16
|
* @param {number} size
|
|
20
17
|
* @returns {Array}
|
|
21
18
|
*/
|
|
22
|
-
|
|
19
|
+
const wrapWord = (input, size) => {
|
|
23
20
|
let subject;
|
|
24
|
-
|
|
25
21
|
subject = input;
|
|
22
|
+
const chunks = []; // https://regex101.com/r/gY5kZ1/1
|
|
26
23
|
|
|
27
|
-
const chunks = [];
|
|
28
|
-
|
|
29
|
-
// https://regex101.com/r/gY5kZ1/1
|
|
30
24
|
const re = new RegExp('(^.{1,' + size + '}(\\s+|$))|(^.{1,' + (size - 1) + '}(\\\\|/|_|\\.|,|;|-))');
|
|
31
25
|
|
|
32
26
|
do {
|
|
33
27
|
let chunk;
|
|
34
|
-
|
|
35
28
|
chunk = subject.match(re);
|
|
36
29
|
|
|
37
30
|
if (chunk) {
|
|
38
31
|
chunk = chunk[0];
|
|
39
|
-
|
|
40
|
-
subject = (0, _sliceAnsi2.default)(subject, (0, _stringWidth2.default)(chunk));
|
|
41
|
-
|
|
32
|
+
subject = (0, _sliceAnsi.default)(subject, (0, _stringWidth.default)(chunk));
|
|
42
33
|
chunk = chunk.trim();
|
|
43
34
|
} else {
|
|
44
|
-
chunk = (0,
|
|
45
|
-
subject = (0,
|
|
35
|
+
chunk = (0, _sliceAnsi.default)(subject, 0, size);
|
|
36
|
+
subject = (0, _sliceAnsi.default)(subject, size);
|
|
46
37
|
}
|
|
47
38
|
|
|
48
39
|
chunks.push(chunk);
|
|
49
|
-
} while ((0,
|
|
40
|
+
} while ((0, _stringWidth.default)(subject));
|
|
50
41
|
|
|
51
42
|
return chunks;
|
|
52
|
-
};
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var _default = wrapWord;
|
|
46
|
+
exports.default = _default;
|
|
47
|
+
//# sourceMappingURL=wrapWord.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/wrapWord.js"],"names":["input","size","subject","chunks","re","RegExp","chunk","match","trim","push"],"mappings":";;;;;;;AAAA;;AACA;;;;AAEA;;;;;kBAKgBA,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"}
|
package/package.json
CHANGED
|
@@ -5,33 +5,45 @@
|
|
|
5
5
|
"url": "http://gajus.com"
|
|
6
6
|
},
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"ajv": "^6.
|
|
9
|
-
"
|
|
10
|
-
"chalk": "^2.1.0",
|
|
11
|
-
"lodash": "^4.17.4",
|
|
8
|
+
"ajv": "^6.5.3",
|
|
9
|
+
"lodash": "^4.17.10",
|
|
12
10
|
"slice-ansi": "1.0.0",
|
|
13
11
|
"string-width": "^2.1.1"
|
|
14
12
|
},
|
|
15
13
|
"description": "Formats data into a string table.",
|
|
16
14
|
"devDependencies": {
|
|
15
|
+
"@babel/cli": "^7.1.2",
|
|
16
|
+
"@babel/core": "^7.1.2",
|
|
17
|
+
"@babel/node": "^7.0.0",
|
|
18
|
+
"@babel/plugin-transform-flow-strip-types": "^7.0.0",
|
|
19
|
+
"@babel/preset-env": "^7.1.0",
|
|
20
|
+
"@babel/register": "^7.0.0",
|
|
17
21
|
"ajv-cli": "^3.0.0",
|
|
18
|
-
"
|
|
19
|
-
"babel-
|
|
20
|
-
"babel-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"eslint": "^
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
22
|
+
"ajv-keywords": "^3.2.0",
|
|
23
|
+
"babel-plugin-istanbul": "^5.1.0",
|
|
24
|
+
"babel-plugin-transform-export-default-name": "^2.0.4",
|
|
25
|
+
"chai": "^4.2.0",
|
|
26
|
+
"chalk": "^2.4.1",
|
|
27
|
+
"coveralls": "^3.0.2",
|
|
28
|
+
"eslint": "^5.6.1",
|
|
29
|
+
"eslint-config-canonical": "^13.0.0",
|
|
30
|
+
"flow-bin": "^0.81.0",
|
|
31
|
+
"flow-copy-source": "^2.0.2",
|
|
32
|
+
"gitdown": "^2.5.4",
|
|
33
|
+
"husky": "^1.0.1",
|
|
34
|
+
"mocha": "^5.2.0",
|
|
35
|
+
"nyc": "^13.1.0",
|
|
36
|
+
"semantic-release": "^15.9.16",
|
|
37
|
+
"sinon": "^6.3.4"
|
|
32
38
|
},
|
|
33
39
|
"engines": {
|
|
34
|
-
"node": ">=
|
|
40
|
+
"node": ">=6.0.0"
|
|
41
|
+
},
|
|
42
|
+
"husky": {
|
|
43
|
+
"hooks": {
|
|
44
|
+
"post-commit": "npm run create-readme && git add README.md && git commit -m 'docs: generate docs' --no-verify",
|
|
45
|
+
"pre-commit": "npm run lint && npm run test && npm run build"
|
|
46
|
+
}
|
|
35
47
|
},
|
|
36
48
|
"keywords": [
|
|
37
49
|
"ascii",
|
|
@@ -45,12 +57,14 @@
|
|
|
45
57
|
"name": "table",
|
|
46
58
|
"nyc": {
|
|
47
59
|
"include": [
|
|
48
|
-
"src
|
|
60
|
+
"src/**/*.js"
|
|
49
61
|
],
|
|
50
62
|
"instrument": false,
|
|
51
|
-
"
|
|
63
|
+
"reporter": [
|
|
64
|
+
"text-lcov"
|
|
65
|
+
],
|
|
52
66
|
"require": [
|
|
53
|
-
"babel
|
|
67
|
+
"@babel/register"
|
|
54
68
|
],
|
|
55
69
|
"sourceMap": false
|
|
56
70
|
},
|
|
@@ -59,13 +73,11 @@
|
|
|
59
73
|
"url": "https://github.com/gajus/table"
|
|
60
74
|
},
|
|
61
75
|
"scripts": {
|
|
62
|
-
"build": "rm -fr ./dist && NODE_ENV=production babel
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"prepublish": "NODE_ENV=production npm run build",
|
|
68
|
-
"test": "npm run build && nyc --check-coverage mocha"
|
|
76
|
+
"build": "rm -fr ./dist && NODE_ENV=production babel ./src --out-dir ./dist --copy-files --source-maps && npm run create-validators && flow-copy-source src dist",
|
|
77
|
+
"create-readme": "gitdown ./.README/README.md --output-file ./README.md",
|
|
78
|
+
"create-validators": "ajv compile --all-errors --inline-refs=false -s src/schemas/config -c ajv-keywords/keywords/typeof -o dist/validateConfig.js && ajv compile --all-errors --inline-refs=false -s src/schemas/streamConfig -c ajv-keywords/keywords/typeof -o dist/validateStreamConfig.js",
|
|
79
|
+
"lint": "npm run build && eslint ./src ./test && flow",
|
|
80
|
+
"test": "mocha --require @babel/register"
|
|
69
81
|
},
|
|
70
|
-
"version": "
|
|
82
|
+
"version": "5.1.0"
|
|
71
83
|
}
|