1"use strict"; 2 3Object.defineProperty(exports, "__esModule", { 4 value: true 5}); 6exports.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 */ 20const 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 var _iteratorNormalCompletion = true; 35 var _didIteratorError = false; 36 var _iteratorError = undefined; 37 38 try { 39 for (var _iterator = rows[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { 40 const cells = _step.value; 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 } 49 50 var _iteratorNormalCompletion2 = true; 51 var _didIteratorError2 = false; 52 var _iteratorError2 = undefined; 53 54 try { 55 for (var _iterator2 = cells[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { 56 const cell = _step2.value; 57 58 // eslint-disable-next-line no-control-regex 59 if (/[\u0001-\u0006\u0008-\u0009\u000B-\u001A]/.test(cell)) { 60 throw new Error('Table data must not contain control characters.'); 61 } 62 } 63 } catch (err) { 64 _didIteratorError2 = true; 65 _iteratorError2 = err; 66 } finally { 67 try { 68 if (!_iteratorNormalCompletion2 && _iterator2.return != null) { 69 _iterator2.return(); 70 } 71 } finally { 72 if (_didIteratorError2) { 73 throw _iteratorError2; 74 } 75 } 76 } 77 } 78 } catch (err) { 79 _didIteratorError = true; 80 _iteratorError = err; 81 } finally { 82 try { 83 if (!_iteratorNormalCompletion && _iterator.return != null) { 84 _iterator.return(); 85 } 86 } finally { 87 if (_didIteratorError) { 88 throw _iteratorError; 89 } 90 } 91 } 92}; 93 94var _default = validateTableData; 95exports.default = _default; 96//# sourceMappingURL=validateTableData.js.map