read-excel-file 9.0.6 → 9.0.7
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/CHANGELOG.md +7 -0
- package/README.md +31 -13
- package/browser/index.d.ts +53 -30
- package/bundle/read-excel-file.min.js.map +1 -1
- package/commonjs/export/parseSheet.js +14 -1
- package/commonjs/export/parseSheet.js.map +1 -1
- package/commonjs/export/readXlsxFileBrowser.js +1 -1
- package/commonjs/export/readXlsxFileBrowser.js.map +1 -1
- package/commonjs/export/readXlsxFileNode.js +1 -1
- package/commonjs/export/readXlsxFileNode.js.map +1 -1
- package/commonjs/export/readXlsxFileUniversal.js +1 -1
- package/commonjs/export/readXlsxFileUniversal.js.map +1 -1
- package/commonjs/export/readXlsxFileWebWorker.js +1 -1
- package/commonjs/export/readXlsxFileWebWorker.js.map +1 -1
- package/commonjs/parseSheetData/parseSheetData.js +4 -1
- package/commonjs/parseSheetData/parseSheetData.js.map +1 -1
- package/commonjs/parseSheetData/parseSheetData.test.js.map +1 -1
- package/commonjs/xlsx/parseSpreadsheetContents.js +1 -1
- package/commonjs/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/modules/export/parseSheet.js +15 -1
- package/modules/export/parseSheet.js.map +1 -1
- package/modules/export/readXlsxFileBrowser.js +1 -1
- package/modules/export/readXlsxFileBrowser.js.map +1 -1
- package/modules/export/readXlsxFileNode.js +1 -1
- package/modules/export/readXlsxFileNode.js.map +1 -1
- package/modules/export/readXlsxFileUniversal.js +1 -1
- package/modules/export/readXlsxFileUniversal.js.map +1 -1
- package/modules/export/readXlsxFileWebWorker.js +1 -1
- package/modules/export/readXlsxFileWebWorker.js.map +1 -1
- package/modules/parseSheetData/parseSheetData.js +4 -1
- package/modules/parseSheetData/parseSheetData.js.map +1 -1
- package/modules/parseSheetData/parseSheetData.test.js.map +1 -1
- package/modules/xlsx/parseSpreadsheetContents.js +1 -1
- package/modules/xlsx/parseSpreadsheetContents.js.map +1 -1
- package/node/index.d.ts +53 -30
- package/node/input.d.ts +2 -2
- package/package.json +1 -1
- package/types/Options.d.ts +5 -0
- package/types/OptionsWithSchema.d.ts +10 -0
- package/types/Sheet.d.ts +6 -0
- package/types/SheetData.d.ts +9 -0
- package/types/parseSheetData/parseSheetData.d.ts +4 -3
- package/types/parseSheetData/parseSheetDataError.d.ts +2 -2
- package/types/parseSheetData/parseSheetDataSchema.d.ts +14 -12
- package/types/parseSheetData/parseSheetDataValueType.d.ts +1 -1
- package/universal/index.d.ts +53 -30
- package/web-worker/index.d.ts +53 -30
- package/types/types.d.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseSheetData.test.js","names":["_mocha","require","_chai","_parseSheetData3","_interopRequireWildcard","_Integer","_interopRequireDefault","_URL","_Email","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","date","Date","UTC","describe","it","_parseSheetData","parseSheetData","number","column","type","Number","required","errors","objects","expect","to","be","undefined","not","deep","equal","error","row","columnIndex","value","_parseSheetData2","columnNotExists","results","parseSheetDataWithPerRowErrors","parse","getTimezoneOffset","Boolean","string","String","phone","phoneType","length","object","exist","name","schema","courseTitle","notExists","parsedObject","data","names","reason","Integer","URL","Email","validate","Error","invalid","status","oneOf","a","b","c","column1","column2","column4","column5","propertyValueWhenColumnIsMissing","propertyValueWhenCellIsEmpty","getNextSubstring","parseSeparatedSubstrings"],"sources":["../../source/parseSheetData/parseSheetData.test.js"],"sourcesContent":["import { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport parseSheetData, { parseSheetDataWithPerRowErrors, parseSeparatedSubstrings, getNextSubstring } from './parseSheetData.js'\r\n\r\n// Additional included types.\r\nimport Integer from './types/additional/Integer.js'\r\nimport URL from './types/additional/URL.js'\r\nimport Email from './types/additional/Email.js'\r\n\r\nconst date = new Date(Date.UTC(2018, 3 - 1, 24))\r\n\r\ndescribe('parseSheetData', () => {\r\n\tit('should include data row number in error objects', () => {\r\n\t\tconst { errors, objects } = parseSheetData([\r\n\t\t\t['NUMBER'],\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(objects).to.be.undefined\r\n\t\texpect(errors).to.not.be.undefined\r\n\r\n\t\texpect(errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should include column index in error objects', () => {\r\n\t\tconst { errors, objects } = parseSheetData([\r\n\t\t\t['IRRELEVANT COLUMN 1', 'IRRELEVANT COLUMN 2', 'NUMBER'],\r\n\t\t\t[null, null, null]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tcolumnNotExists: {\r\n\t\t\t\tcolumn: 'COLUMN NOT EXISTS',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(objects).to.be.undefined\r\n\t\texpect(errors).to.not.be.undefined\r\n\r\n\t\texpect(errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 2,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}, {\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'COLUMN NOT EXISTS',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: undefined\r\n\t\t}])\r\n\t})\r\n})\r\n\r\ndescribe('parseSheetDataWithPerRowErrors', () => {\r\n\tit('should parse object from sheet data', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING',\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t'123',\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc',\r\n\t\t\t\t'(123) 456-7890',\r\n\t\t\t\t'(123) 456-7890'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number\r\n\t\t\t},\r\n\t\t\tboolean: {\r\n\t\t\t\tcolumn: 'BOOLEAN',\r\n\t\t\t\ttype: Boolean\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tphone: {\r\n\t\t\t\tcolumn: 'PHONE',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tphoneType: {\r\n\t\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tdate: date,\r\n\t\t\tnumber: 123,\r\n\t\t\tphone: '+11234567890',\r\n\t\t\tphoneType: '+11234567890',\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should support schema entries with no `type`s', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t123,\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE'\r\n\t\t\t},\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER'\r\n\t\t\t},\r\n\t\t\tboolean: {\r\n\t\t\t\tcolumn: 'BOOLEAN'\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING'\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tdate: date,\r\n\t\t\tnumber: 123,\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should return an error when a propertry is required and the cell value is empty', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'STRING'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should not skip empty rows', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t['NAME'],\r\n\t\t\t// Non-empty row\r\n\t\t\t['Barack Obama'],\r\n\t\t\t// Empty row\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tname: {\r\n\t\t\t\tcolumn: 'NAME',\r\n\t\t\t\ttype: String\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tname: 'Barack Obama'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.equal(null)\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\t})\r\n\r\n\tit('should support `required` function', () => {\r\n\t\tconst schema = {\r\n\t\t\tcourseTitle: {\r\n\t\t\t\tcolumn: 'COURSE TITLE',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tnotExists: {\r\n\t\t\t\tcolumn: 'NOT EXISTS',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: (parsedObject) => parsedObject.courseTitle === 'Chemistry'\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst data = [\r\n\t\t\t['COURSE TITLE'],\r\n\t\t\t// `required: true`.\r\n\t\t\t['Chemistry'],\r\n\t\t\t// `required: false`.\r\n\t\t\t['Math']\r\n\t\t]\r\n\r\n\t\tconst results = parseSheetDataWithPerRowErrors(data, schema)\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.not.be.undefined\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NOT EXISTS',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\tvalue: undefined,\r\n\t\t\t// value: null,\r\n\t\t\ttype: Number\r\n\t\t}])\r\n\r\n\t\texpect(results[1].object).to.not.be.undefined\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcourseTitle: 'Math',\r\n\t\t\tnotExists: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse arrays', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t['NAMES'],\r\n\t\t\t// 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t['Barack Obama, String, Donald Trump'],\r\n\t\t\t// Invalid syntax\r\n\t\t\t[', String'],\r\n\t\t\t// Empty row\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tnames: {\r\n\t\t\t\tcolumn: 'NAMES',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(3)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\t// names: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t\tnames: ['Barack Obama', 'String', 'Donald Trump']\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'syntax',\r\n\t\t\tcolumn: 'NAMES',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\tvalue: ', String',\r\n\t\t\ttype: [String]\r\n\t\t}])\r\n\r\n\t\texpect(results[2].object).to.deep.equal(null)\r\n\t\texpect(results[2].errors).to.be.undefined\r\n\t})\r\n\r\n\tit('should parse integers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'INTEGER',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 1\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_integer',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'INTEGER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Integer,\r\n\t\t\tvalue: '1.2'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse URLs', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'URL'\r\n\t\t\t], [\r\n\t\t\t\t'https://kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'kremlin.ru'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'URL',\r\n\t\t\t\ttype: URL\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 'https://kremlin.ru'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_url',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'URL',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: URL,\r\n\t\t\tvalue: 'kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse Emails', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'EMAIL'\r\n\t\t\t], [\r\n\t\t\t\t'vladimir.putin@kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'EMAIL',\r\n\t\t\t\ttype: Email\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 'vladimir.putin@kremlin.ru'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_email',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'EMAIL',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Email,\r\n\t\t\tvalue: '123'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should call .validate()', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NAME'\r\n\t\t\t], [\r\n\t\t\t\t'George Bush'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tname: {\r\n\t\t\t\tcolumn: 'NAME',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidate: (value) => {\r\n\t\t\t\t\tif (value === 'George Bush') {\r\n\t\t\t\t\t\tthrow new Error('custom-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'custom-error',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NAME',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'George Bush'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate numbers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate booleans', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'TRUE',\r\n\t\t\t\t'FALSE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\t'TRUE'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\ttrue: {\r\n\t\t\t\tcolumn: 'TRUE',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tfalse: {\r\n\t\t\t\tcolumn: 'FALSE',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tinvalid: {\r\n\t\t\t\tcolumn: 'INVALID',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_boolean',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\tcolumnIndex: 2,\r\n\t\t\ttype: Boolean,\r\n\t\t\tvalue: 'TRUE'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate dates', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\tdate, // 03/24/2018',,\r\n\t\t\t\t'-'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tinvalid: {\r\n\t\t\t\tcolumn: 'INVALID',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_date',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\tcolumnIndex: 1,\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should throw parse() errors', () => {\r\n\t\tconst type = () => {\r\n\t\t\tthrow new Error('invalid')\r\n\t\t}\r\n\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\t'123',\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tphone: {\r\n\t\t\t\tcolumn: 'PHONE',\r\n\t\t\t\ttype\r\n\t\t\t},\r\n\t\t\tphoneType: {\r\n\t\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\t\ttype\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'PHONE',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\tvalue: '123',\r\n\t\t\ttype\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\tcolumnIndex: 1,\r\n\t\t\tvalue: '123',\r\n\t\t\ttype\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should map row numbers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// , { rowIndexSourceMap: [2, 5] })\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (valid)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'STARTED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tstatus: {\r\n\t\t\t\tcolumn: 'STATUS',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tstatus: 'STARTED'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (not valid)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'SCHEDULED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tstatus: {\r\n\t\t\t\tcolumn: 'STATUS',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'unknown',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'STATUS',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'SCHEDULED'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support `required: undefined` on nested objects (nested object properties are not required)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.not.exist\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should support `required: undefined` on nested objects (some of nested object properties are required)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.not.exist\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'CB',\r\n\t\t\tcolumnIndex: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support `required: false` on nested objects (nested object is completely absent)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n\t\t\t\t\trequired: false,\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should support `required: false` on nested objects (nested object is not absent)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n\t\t\t\t\trequired: false,\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.not.exist\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'CB',\r\n\t\t\tcolumnIndex: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should reduce empty nested objects to `null` by default', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca', b: null } }\r\n\t\t)\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: null, c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenCellIsEmpty: undefined`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenCellIsEmpty: undefined\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: undefined,\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null` and `propertyValueWhenCellIsEmpty: null`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null,\r\n\t\t\tpropertyValueWhenCellIsEmpty: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null` and `propertyValueWhenCellIsEmpty: null`) (`required: true`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null,\r\n\t\t\tpropertyValueWhenCellIsEmpty: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n})\r\n\r\ndescribe('getNextSubstring', () => {\r\n\tit('should parse substrings from a string with a given separator character', () => {\r\n\t\texpect(getNextSubstring('abcde,fg,h', ',', 0)).to.deep.equal(['abcde', 5])\r\n\r\n\t\t// Custom separator and trimming.\r\n\t\texpect(parseSeparatedSubstrings(' abcde,fg , h ', ',')).to.deep.equal(['abcde', 'fg', 'h'])\r\n\r\n\t\t// Should ignore commas inside quotes.\r\n\t\t// expect(getNextSubstring('abc\"de,f\"g,h', ',', 0)).to.deep.equal(['abcde,fg', 10])\r\n\r\n\t\t// Custom separator and trimming.\r\n\t\t// Should ignore commas inside quotes.\r\n\t\t// expect(parseSeparatedSubstrings(' abc\"de,f\"g , h ', ',')).to.deep.equal(['abcde,fg', 'h'])\r\n\t})\r\n})"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parseSheetData.test.js","names":["_mocha","require","_chai","_parseSheetData3","_interopRequireWildcard","_Integer","_interopRequireDefault","_URL","_Email","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","date","Date","UTC","describe","it","_parseSheetData","parseSheetData","number","column","type","Number","required","errors","objects","expect","to","be","undefined","not","deep","equal","error","row","columnIndex","value","_parseSheetData2","columnNotExists","results","parseSheetDataWithPerRowErrors","parse","getTimezoneOffset","Boolean","string","String","phone","phoneType","length","object","exist","name","schema","courseTitle","notExists","parsedObject","data","names","reason","Integer","URL","Email","validate","Error","invalid","status","oneOf","a","b","c","column1","column2","column4","column5","propertyValueWhenColumnIsMissing","propertyValueWhenCellIsEmpty","getNextSubstring","parseSeparatedSubstrings"],"sources":["../../source/parseSheetData/parseSheetData.test.js"],"sourcesContent":["import { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport parseSheetData, { parseSheetDataWithPerRowErrors, parseSeparatedSubstrings, getNextSubstring } from './parseSheetData.js'\r\n\r\n// Additional included types.\r\nimport Integer from './types/additional/Integer.js'\r\nimport URL from './types/additional/URL.js'\r\nimport Email from './types/additional/Email.js'\r\n\r\nconst date = new Date(Date.UTC(2018, 3 - 1, 24))\r\n\r\ndescribe('parseSheetData', () => {\r\n\tit('should include data row number in error objects', () => {\r\n\t\tconst { errors, objects } = parseSheetData([\r\n\t\t\t['NUMBER'],\r\n\t\t\t[null],\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(objects).to.be.undefined\r\n\t\texpect(errors).to.not.be.undefined\r\n\r\n\t\texpect(errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}, {\r\n\t\t\terror: 'required',\r\n\t\t\trow: 2,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should include column index in error objects', () => {\r\n\t\tconst { errors, objects } = parseSheetData([\r\n\t\t\t['IRRELEVANT COLUMN 1', 'IRRELEVANT COLUMN 2', 'NUMBER'],\r\n\t\t\t[null, null, null]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tcolumnNotExists: {\r\n\t\t\t\tcolumn: 'COLUMN NOT EXISTS',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(objects).to.be.undefined\r\n\t\texpect(errors).to.not.be.undefined\r\n\r\n\t\texpect(errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 2,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}, {\r\n\t\t\terror: 'required',\r\n\t\t\trow: 1,\r\n\t\t\tcolumn: 'COLUMN NOT EXISTS',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: undefined\r\n\t\t}])\r\n\t})\r\n})\r\n\r\ndescribe('parseSheetDataWithPerRowErrors', () => {\r\n\tit('should parse object from sheet data', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING',\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t'123',\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc',\r\n\t\t\t\t'(123) 456-7890',\r\n\t\t\t\t'(123) 456-7890'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE',\r\n\t\t\t\ttype: Date\r\n\t\t\t},\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number\r\n\t\t\t},\r\n\t\t\tboolean: {\r\n\t\t\t\tcolumn: 'BOOLEAN',\r\n\t\t\t\ttype: Boolean\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tphone: {\r\n\t\t\t\tcolumn: 'PHONE',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tphoneType: {\r\n\t\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\t\ttype(value) {\r\n\t\t\t\t\treturn '+11234567890'\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tdate: date,\r\n\t\t\tnumber: 123,\r\n\t\t\tphone: '+11234567890',\r\n\t\t\tphoneType: '+11234567890',\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should support schema entries with no `type`s', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'BOOLEAN',\r\n\t\t\t\t'STRING'\r\n\t\t\t], [\r\n\t\t\t\tnew Date(Date.parse('03/24/2018') - new Date().getTimezoneOffset() * 60 * 1000), // '43183', // '03/24/2018',\r\n\t\t\t\t123,\r\n\t\t\t\ttrue,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE'\r\n\t\t\t},\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER'\r\n\t\t\t},\r\n\t\t\tboolean: {\r\n\t\t\t\tcolumn: 'BOOLEAN'\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING'\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tdate: date,\r\n\t\t\tnumber: 123,\r\n\t\t\tboolean: true,\r\n\t\t\tstring: 'abc'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should return an error when a propertry is required and the cell value is empty', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER',\r\n\t\t\t\t'STRING'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\tnull,\r\n\t\t\t\t'abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tstring: {\r\n\t\t\t\tcolumn: 'STRING',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should not skip empty rows', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t['NAME'],\r\n\t\t\t// Non-empty row\r\n\t\t\t['Barack Obama'],\r\n\t\t\t// Empty row\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tname: {\r\n\t\t\t\tcolumn: 'NAME',\r\n\t\t\t\ttype: String\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tname: 'Barack Obama'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.equal(null)\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\t})\r\n\r\n\tit('should support `required` function', () => {\r\n\t\tconst schema = {\r\n\t\t\tcourseTitle: {\r\n\t\t\t\tcolumn: 'COURSE TITLE',\r\n\t\t\t\ttype: String\r\n\t\t\t},\r\n\t\t\tnotExists: {\r\n\t\t\t\tcolumn: 'NOT EXISTS',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: (parsedObject) => parsedObject.courseTitle === 'Chemistry'\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst data = [\r\n\t\t\t['COURSE TITLE'],\r\n\t\t\t// `required: true`.\r\n\t\t\t['Chemistry'],\r\n\t\t\t// `required: false`.\r\n\t\t\t['Math']\r\n\t\t]\r\n\r\n\t\tconst results = parseSheetDataWithPerRowErrors(data, schema)\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.not.be.undefined\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NOT EXISTS',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\tvalue: undefined,\r\n\t\t\t// value: null,\r\n\t\t\ttype: Number\r\n\t\t}])\r\n\r\n\t\texpect(results[1].object).to.not.be.undefined\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcourseTitle: 'Math',\r\n\t\t\tnotExists: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse arrays', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t['NAMES'],\r\n\t\t\t// 'Barack Obama, \"String, with, colons\", Donald Trump'\r\n\t\t\t['Barack Obama, String, Donald Trump'],\r\n\t\t\t// Invalid syntax\r\n\t\t\t[', String'],\r\n\t\t\t// Empty row\r\n\t\t\t[null]\r\n\t\t], {\r\n\t\t\tnames: {\r\n\t\t\t\tcolumn: 'NAMES',\r\n\t\t\t\ttype: [String]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(3)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\t// names: ['Barack Obama', 'String, with, colons', 'Donald Trump']\r\n\t\t\tnames: ['Barack Obama', 'String', 'Donald Trump']\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'syntax',\r\n\t\t\tcolumn: 'NAMES',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\tvalue: ', String',\r\n\t\t\ttype: [String]\r\n\t\t}])\r\n\r\n\t\texpect(results[2].object).to.deep.equal(null)\r\n\t\texpect(results[2].errors).to.be.undefined\r\n\t})\r\n\r\n\tit('should parse integers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'INTEGER'\r\n\t\t\t], [\r\n\t\t\t\t'1'\r\n\t\t\t], [\r\n\t\t\t\t'1.2'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'INTEGER',\r\n\t\t\t\ttype: Integer\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 1\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_integer',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'INTEGER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Integer,\r\n\t\t\tvalue: '1.2'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse URLs', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'URL'\r\n\t\t\t], [\r\n\t\t\t\t'https://kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'kremlin.ru'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'URL',\r\n\t\t\t\ttype: URL\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 'https://kremlin.ru'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_url',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'URL',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: URL,\r\n\t\t\tvalue: 'kremlin.ru'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should parse Emails', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'EMAIL'\r\n\t\t\t], [\r\n\t\t\t\t'vladimir.putin@kremlin.ru'\r\n\t\t\t], [\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tvalue: {\r\n\t\t\t\tcolumn: 'EMAIL',\r\n\t\t\t\ttype: Email\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tvalue: 'vladimir.putin@kremlin.ru'\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\t\texpect(results[1].errors.length).to.equal(1)\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_an_email',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'EMAIL',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Email,\r\n\t\t\tvalue: '123'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should call .validate()', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NAME'\r\n\t\t\t], [\r\n\t\t\t\t'George Bush'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tname: {\r\n\t\t\t\tcolumn: 'NAME',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true,\r\n\t\t\t\tvalidate: (value) => {\r\n\t\t\t\t\tif (value === 'George Bush') {\r\n\t\t\t\t\t\tthrow new Error('custom-error')\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'custom-error',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NAME',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'George Bush'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate numbers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate booleans', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'TRUE',\r\n\t\t\t\t'FALSE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\ttrue,\r\n\t\t\t\tfalse,\r\n\t\t\t\t'TRUE'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\ttrue: {\r\n\t\t\t\tcolumn: 'TRUE',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tfalse: {\r\n\t\t\t\tcolumn: 'FALSE',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tinvalid: {\r\n\t\t\t\tcolumn: 'INVALID',\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_boolean',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\tcolumnIndex: 2,\r\n\t\t\ttype: Boolean,\r\n\t\t\tvalue: 'TRUE'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate dates', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'DATE',\r\n\t\t\t\t'INVALID'\r\n\t\t\t], [\r\n\t\t\t\tdate, // 03/24/2018',,\r\n\t\t\t\t'-'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tdate: {\r\n\t\t\t\tcolumn: 'DATE',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t},\r\n\t\t\tinvalid: {\r\n\t\t\t\tcolumn: 'INVALID',\r\n\t\t\t\ttype: Date,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_date',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'INVALID',\r\n\t\t\tcolumnIndex: 1,\r\n\t\t\ttype: Date,\r\n\t\t\tvalue: '-'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should throw parse() errors', () => {\r\n\t\tconst type = () => {\r\n\t\t\tthrow new Error('invalid')\r\n\t\t}\r\n\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'PHONE',\r\n\t\t\t\t'PHONE_TYPE'\r\n\t\t\t], [\r\n\t\t\t\t'123',\r\n\t\t\t\t'123'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tphone: {\r\n\t\t\t\tcolumn: 'PHONE',\r\n\t\t\t\ttype\r\n\t\t\t},\r\n\t\t\tphoneType: {\r\n\t\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\t\ttype\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'PHONE',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\tvalue: '123',\r\n\t\t\ttype\r\n\t\t}, {\r\n\t\t\terror: 'invalid',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'PHONE_TYPE',\r\n\t\t\tcolumnIndex: 1,\r\n\t\t\tvalue: '123',\r\n\t\t\ttype\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should map row numbers', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'NUMBER'\r\n\t\t\t], [\r\n\t\t\t\t'123abc'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tnumber: {\r\n\t\t\t\tcolumn: 'NUMBER',\r\n\t\t\t\ttype: Number\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// , { rowIndexSourceMap: [2, 5] })\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'not_a_number',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'NUMBER',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: Number,\r\n\t\t\tvalue: '123abc'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (valid)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'STARTED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tstatus: {\r\n\t\t\t\tcolumn: 'STATUS',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tstatus: 'STARTED'\r\n\t\t})\r\n\t})\r\n\r\n\tit('should validate \"oneOf\" (not valid)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'STATUS'\r\n\t\t\t],\r\n\t\t\t[\r\n\t\t\t\t'SCHEDULED'\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tstatus: {\r\n\t\t\t\tcolumn: 'STATUS',\r\n\t\t\t\ttype: String,\r\n\t\t\t\toneOf: [\r\n\t\t\t\t\t'STARTED',\r\n\t\t\t\t\t'FINISHED'\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'invalid',\r\n\t\t\treason: 'unknown',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'STATUS',\r\n\t\t\tcolumnIndex: 0,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: 'SCHEDULED'\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support `required: undefined` on nested objects (nested object properties are not required)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.not.exist\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should support `required: undefined` on nested objects (some of nested object properties are required)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.not.exist\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'CB',\r\n\t\t\tcolumnIndex: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should support `required: false` on nested objects (nested object is completely absent)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', null, null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n\t\t\t\t\trequired: false,\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should support `required: false` on nested objects (nested object is not absent)', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n\t\t\t\t\trequired: false,\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String,\r\n\t\t\t\t\t\t\trequired: true\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(1)\r\n\r\n\t\texpect(results[0].object).to.not.exist\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'CB',\r\n\t\t\tcolumnIndex: 3,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should reduce empty nested objects to `null` by default', function() {\r\n\t\tconst results = parseSheetDataWithPerRowErrors(\r\n\t\t\t[\r\n\t\t\t\t['A', 'B', 'CA', 'CB'],\r\n\t\t\t\t['a', 'b', 'ca', null],\r\n\t\t\t\t['a', null]\r\n\t\t\t],\r\n\t\t\t{\r\n\t\t\t\ta: {\r\n\t\t\t\t\tcolumn: 'A',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tb: {\r\n\t\t\t\t\tcolumn: 'B',\r\n\t\t\t\t\ttype: String\r\n\t\t\t\t},\r\n\t\t\t\tc: {\r\n \t\t\tschema: {\r\n\t\t\t\t\t\ta: {\r\n\t\t\t\t\t\t\tcolumn: 'CA',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tb: {\r\n\t\t\t\t\t\t\tcolumn: 'CB',\r\n\t\t\t\t\t\t\ttype: String\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t)\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: 'b', c: { a: 'ca', b: null } }\r\n\t\t)\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal(\r\n\t\t\t{ a: 'a', b: null, c: null }\r\n\t\t)\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenCellIsEmpty: undefined`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenCellIsEmpty: undefined\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: undefined,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: undefined,\r\n\t\t\tcolumn5: undefined\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null` and `propertyValueWhenCellIsEmpty: null`) (`required: false`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null,\r\n\t\t\tpropertyValueWhenCellIsEmpty: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.exist\r\n\t\texpect(results[0].errors).to.be.undefined\r\n\r\n\t\texpect(results[0].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '12',\r\n\t\t\tcolumn4: '14',\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\r\n\t\texpect(results[1].object).to.exist\r\n\t\texpect(results[1].errors).to.be.undefined\r\n\r\n\t\texpect(results[1].object).to.deep.equal({\r\n\t\t\tcolumn1: null,\r\n\t\t\tcolumn2: '22',\r\n\t\t\tcolumn4: null,\r\n\t\t\tcolumn5: null\r\n\t\t})\r\n\t})\r\n\r\n\tit('should parse missing columns (`undefined` by default) and empty cells (`null` by default) (`propertyValueWhenColumnIsMissing: null` and `propertyValueWhenCellIsEmpty: null`) (`required: true`)', () => {\r\n\t\tconst results = parseSheetDataWithPerRowErrors([\r\n\t\t\t[\r\n\t\t\t\t'COLUMN_2',\r\n\t\t\t\t'COLUMN_3',\r\n\t\t\t\t'COLUMN_4'\r\n\t\t\t], [\r\n\t\t\t\t'12',\r\n\t\t\t\t'13',\r\n\t\t\t\t'14'\r\n\t\t\t], [\r\n\t\t\t\t'22',\r\n\t\t\t\t'23',\r\n\t\t\t\tnull\r\n\t\t\t]\r\n\t\t], {\r\n\t\t\tcolumn1: {\r\n\t\t\t\tcolumn: 'COLUMN_1',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn2: {\r\n\t\t\t\tcolumn: 'COLUMN_2',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn4: {\r\n\t\t\t\tcolumn: 'COLUMN_4',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: false\r\n\t\t\t},\r\n\t\t\tcolumn5: {\r\n\t\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\t\ttype: String,\r\n\t\t\t\trequired: true\r\n\t\t\t}\r\n\t\t}, {\r\n\t\t\tpropertyValueWhenColumnIsMissing: null,\r\n\t\t\tpropertyValueWhenCellIsEmpty: null\r\n\t\t})\r\n\r\n\t\texpect(results.length).to.equal(2)\r\n\r\n\t\texpect(results[0].object).to.be.undefined\r\n\t\texpect(results[0].errors).to.exist\r\n\r\n\t\texpect(results[0].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 1,\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\r\n\t\texpect(results[1].object).to.be.undefined\r\n\t\texpect(results[1].errors).to.exist\r\n\r\n\t\texpect(results[1].errors).to.deep.equal([{\r\n\t\t\terror: 'required',\r\n\t\t\t// row: 2,\r\n\t\t\tcolumn: 'COLUMN_5',\r\n\t\t\tcolumnIndex: -1,\r\n\t\t\ttype: String,\r\n\t\t\tvalue: null\r\n\t\t}])\r\n\t})\r\n})\r\n\r\ndescribe('getNextSubstring', () => {\r\n\tit('should parse substrings from a string with a given separator character', () => {\r\n\t\texpect(getNextSubstring('abcde,fg,h', ',', 0)).to.deep.equal(['abcde', 5])\r\n\r\n\t\t// Custom separator and trimming.\r\n\t\texpect(parseSeparatedSubstrings(' abcde,fg , h ', ',')).to.deep.equal(['abcde', 'fg', 'h'])\r\n\r\n\t\t// Should ignore commas inside quotes.\r\n\t\t// expect(getNextSubstring('abc\"de,f\"g,h', ',', 0)).to.deep.equal(['abcde,fg', 10])\r\n\r\n\t\t// Custom separator and trimming.\r\n\t\t// Should ignore commas inside quotes.\r\n\t\t// expect(parseSeparatedSubstrings(' abc\"de,f\"g , h ', ',')).to.deep.equal(['abcde,fg', 'h'])\r\n\t})\r\n})"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
20
20
|
* @param {Record<string,string>} contents - A map of `.xml` files inside the `.xlsx` file (which itself is just a zipped directory).
|
|
21
21
|
* @param {object} xml — An object having a single property — `createDocument(string)` function.
|
|
22
22
|
* @param {object} [options]
|
|
23
|
-
* @return {
|
|
23
|
+
* @return {Sheet[]}
|
|
24
24
|
*/
|
|
25
25
|
function parseSpreadsheetContents(contents, xml) {
|
|
26
26
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseSpreadsheetContents.js","names":["_parseSpreadsheetInfo2","_interopRequireDefault","require","_parseFilePaths","_parseStyles","_parseSharedStrings","_parseSheet","obj","__esModule","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","parseSpreadsheetContents","contents","xml","options","arguments","undefined","getFileContent","filePath","Error","concat","filePaths","parseFilePaths","sharedStrings","parseSharedStrings","styles","parseStyles","_parseSpreadsheetInfo","parseSpreadsheetInfo","sheets","epoch1904","sheetIdsToRead","map","sheet","getSheetId","sheetsData","_i","_Object$keys","keys","sheetId","includes","push","getSheetNameById","data","parseSheet","_iterator","_step","_sheet","relationId","_ref","join","_iterator2","_step2"],"sources":["../../source/xlsx/parseSpreadsheetContents.js"],"sourcesContent":["import parseSpreadsheetInfo from './parseSpreadsheetInfo.js'\r\nimport parseFilePaths from './parseFilePaths.js'\r\nimport parseStyles from './parseStyles.js'\r\nimport parseSharedStrings from './parseSharedStrings.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n// For an introduction in reading `.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads data from an `.xlsx` file.\r\n * @param {Record<string,string>} contents - A map of `.xml` files inside the `.xlsx` file (which itself is just a zipped directory).\r\n * @param {object} xml — An object having a single property — `createDocument(string)` function.\r\n * @param {object} [options]\r\n * @return {
|
|
1
|
+
{"version":3,"file":"parseSpreadsheetContents.js","names":["_parseSpreadsheetInfo2","_interopRequireDefault","require","_parseFilePaths","_parseStyles","_parseSharedStrings","_parseSheet","obj","__esModule","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","parseSpreadsheetContents","contents","xml","options","arguments","undefined","getFileContent","filePath","Error","concat","filePaths","parseFilePaths","sharedStrings","parseSharedStrings","styles","parseStyles","_parseSpreadsheetInfo","parseSpreadsheetInfo","sheets","epoch1904","sheetIdsToRead","map","sheet","getSheetId","sheetsData","_i","_Object$keys","keys","sheetId","includes","push","getSheetNameById","data","parseSheet","_iterator","_step","_sheet","relationId","_ref","join","_iterator2","_step2"],"sources":["../../source/xlsx/parseSpreadsheetContents.js"],"sourcesContent":["import parseSpreadsheetInfo from './parseSpreadsheetInfo.js'\r\nimport parseFilePaths from './parseFilePaths.js'\r\nimport parseStyles from './parseStyles.js'\r\nimport parseSharedStrings from './parseSharedStrings.js'\r\nimport parseSheet from './parseSheet.js'\r\n\r\n// For an introduction in reading `.xlsx` files see \"The minimum viable XLSX reader\":\r\n// https://www.brendanlong.com/the-minimum-viable-xlsx-reader.html\r\n\r\n/**\r\n * Reads data from an `.xlsx` file.\r\n * @param {Record<string,string>} contents - A map of `.xml` files inside the `.xlsx` file (which itself is just a zipped directory).\r\n * @param {object} xml — An object having a single property — `createDocument(string)` function.\r\n * @param {object} [options]\r\n * @return {Sheet[]}\r\n */\r\nexport default function parseSpreadsheetContents(contents, xml, options = {}) {\r\n const getFileContent = (filePath) => {\r\n if (!contents[filePath]) {\r\n throw new Error(`\"${filePath}\" file not found inside the *.xlsx file zip archive`)\r\n }\r\n return contents[filePath]\r\n }\r\n\r\n // Read the paths to certain files inside the `.xlsx` file, which is itself just a `.zip` archive.\r\n // These paths aren't standardized between different spreadsheet editors.\r\n // https://github.com/tidyverse/readxl/issues/104\r\n const filePaths = parseFilePaths(getFileContent('xl/_rels/workbook.xml.rels'), xml)\r\n\r\n // The usual file path for \"shared strings\" is \"xl/sharedStrings.xml\".\r\n const sharedStrings = filePaths.sharedStrings\r\n ? parseSharedStrings(getFileContent(filePaths.sharedStrings), xml)\r\n : []\r\n\r\n // The usual file path for \"styles\" is \"xl/styles.xml\".\r\n const styles = filePaths.styles\r\n ? parseStyles(getFileContent(filePaths.styles), xml)\r\n : {}\r\n\r\n const { sheets, epoch1904 } = parseSpreadsheetInfo(getFileContent('xl/workbook.xml'), xml)\r\n\r\n const sheetIdsToRead = options.sheets && options.sheets.map(sheet => getSheetId(sheet, sheets))\r\n\r\n // Parse sheets data.\r\n\r\n const sheetsData = []\r\n\r\n for (const sheetId of Object.keys(filePaths.sheets)) {\r\n if (sheetIdsToRead && !sheetIdsToRead.includes(sheetId)) {\r\n continue\r\n }\r\n\r\n sheetsData.push({\r\n sheet: getSheetNameById(sheetId, sheets),\r\n data: parseSheet(\r\n getFileContent(filePaths.sheets[sheetId]),\r\n xml,\r\n sharedStrings,\r\n styles,\r\n epoch1904,\r\n options\r\n )\r\n })\r\n }\r\n\r\n // Return spreadsheet data.\r\n return sheetsData\r\n}\r\n\r\nfunction getSheetId(sheet, sheets) {\r\n if (typeof sheet === 'string') {\r\n for (const _sheet of sheets) {\r\n if (_sheet.name === sheet) {\r\n return _sheet.relationId\r\n }\r\n }\r\n\t\tthrow new Error(`Sheet \"${sheet}\" not found. Available sheets: ${sheets.map(({ name }) => `\"${name}\"`).join(', ')}`)\r\n } else {\r\n\t\tif (sheet <= sheets.length) {\r\n return sheets[sheet - 1].relationId\r\n }\r\n throw new Error(`Sheet number out of bounds: ${sheet}. Available sheets count: ${sheets.length}`)\r\n }\r\n}\r\n\r\nfunction getSheetNameById(sheetId, sheets) {\r\n for (const sheet of sheets) {\r\n if (sheet.relationId === sheetId) {\r\n return sheet.name\r\n }\r\n }\r\n throw new Error(`Sheet ID not found: ${sheetId}`)\r\n}"],"mappings":"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"}
|
|
@@ -5,9 +5,23 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
5
5
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
6
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
|
|
8
|
+
import parseSheetData from '../parseSheetData/parseSheetData.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Reads data from a single sheet of an `.xlsx` file as an array of rows (which are arrays of cells) or as an array of objects (if `options.schema` was passed).
|
|
12
|
+
* @param {Record<string,string>} contents - A map of `.xml` files inside the `.xlsx` file (which itself is just a zipped directory).
|
|
13
|
+
* @param {object} xml — An object having a single property — `createDocument(string)` function.
|
|
14
|
+
* @param {string|number} [sheet] — Sheet name or number.
|
|
15
|
+
* @param {object} [options]
|
|
16
|
+
* @return {Sheet[]}
|
|
17
|
+
*/
|
|
8
18
|
export default function parseSheet(contents, xml, sheet, options) {
|
|
9
|
-
|
|
19
|
+
var data = parseSpreadsheetContents(contents, xml, _objectSpread(_objectSpread({}, options), {}, {
|
|
10
20
|
sheets: [sheet === undefined ? 1 : sheet]
|
|
11
21
|
}))[0].data;
|
|
22
|
+
if (options && options.schema) {
|
|
23
|
+
return parseSheetData(data, options.schema);
|
|
24
|
+
}
|
|
25
|
+
return data;
|
|
12
26
|
}
|
|
13
27
|
//# sourceMappingURL=parseSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseSheet.js","names":["parseSpreadsheetContents","parseSheet","contents","xml","sheet","options","_objectSpread","sheets","undefined","
|
|
1
|
+
{"version":3,"file":"parseSheet.js","names":["parseSpreadsheetContents","parseSheetData","parseSheet","contents","xml","sheet","options","data","_objectSpread","sheets","undefined","schema"],"sources":["../../source/export/parseSheet.js"],"sourcesContent":["import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\nimport parseSheetData from '../parseSheetData/parseSheetData.js'\r\n\r\n/**\r\n * Reads data from a single sheet of an `.xlsx` file as an array of rows (which are arrays of cells) or as an array of objects (if `options.schema` was passed).\r\n * @param {Record<string,string>} contents - A map of `.xml` files inside the `.xlsx` file (which itself is just a zipped directory).\r\n * @param {object} xml — An object having a single property — `createDocument(string)` function.\r\n * @param {string|number} [sheet] — Sheet name or number.\r\n * @param {object} [options]\r\n * @return {Sheet[]}\r\n */\r\nexport default function parseSheet(contents, xml, sheet, options) {\r\n\tconst { data } = parseSpreadsheetContents(contents, xml, {\r\n\t\t...options,\r\n\t\tsheets: [sheet === undefined ? 1 : sheet]\r\n\t})[0]\r\n\r\n\tif (options && options.schema) {\r\n\t\treturn parseSheetData(data, options.schema)\r\n\t}\r\n\r\n\treturn data\r\n}"],"mappings":";;;;;;AAAA,OAAOA,wBAAwB,MAAM,qCAAqC;AAC1E,OAAOC,cAAc,MAAM,qCAAqC;;AAEhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,UAAUA,CAACC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACjE,IAAQC,IAAI,GAAKP,wBAAwB,CAACG,QAAQ,EAAEC,GAAG,EAAAI,aAAA,CAAAA,aAAA,KACnDF,OAAO;IACVG,MAAM,EAAE,CAACJ,KAAK,KAAKK,SAAS,GAAG,CAAC,GAAGL,KAAK;EAAC,EACzC,CAAC,CAAC,CAAC,CAAC,CAHGE,IAAI;EAKZ,IAAID,OAAO,IAAIA,OAAO,CAACK,MAAM,EAAE;IAC9B,OAAOV,cAAc,CAACM,IAAI,EAAED,OAAO,CAACK,MAAM,CAAC;EAC5C;EAEA,OAAOJ,IAAI;AACZ"}
|
|
@@ -6,7 +6,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
|
|
|
6
6
|
* Reads an `.xlsx` file.
|
|
7
7
|
* @param {(File|Blob|ArrayBuffer)} input
|
|
8
8
|
* @param {object} [options]
|
|
9
|
-
* @return {Promise<
|
|
9
|
+
* @return {Promise<Sheet[]>}
|
|
10
10
|
*/
|
|
11
11
|
export default function readXlsxFile(input, options) {
|
|
12
12
|
return unpackXlsxFile(input).then(function (contents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readXlsxFileBrowser.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileBrowser.js"],"sourcesContent":["import xml from '../xml/xmlBrowser.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<
|
|
1
|
+
{"version":3,"file":"readXlsxFileBrowser.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileBrowser.js"],"sourcesContent":["import xml from '../xml/xmlBrowser.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,sBAAsB;AAEtC,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
|
|
@@ -6,7 +6,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
|
|
|
6
6
|
* Reads an `.xlsx` file.
|
|
7
7
|
* @param {(string|Stream|Buffer|Blob)} input
|
|
8
8
|
* @param {object} [options]
|
|
9
|
-
* @return {Promise<
|
|
9
|
+
* @return {Promise<Sheet[]>}
|
|
10
10
|
*/
|
|
11
11
|
export default function readXlsxFile(input, options) {
|
|
12
12
|
return unpackXlsxFile(input).then(function (contents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readXlsxFileNode.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileNode.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {object} [options]\r\n * @return {Promise<
|
|
1
|
+
{"version":3,"file":"readXlsxFileNode.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileNode.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileNode.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(string|Stream|Buffer|Blob)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,yBAAyB;AACpD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
|
|
@@ -6,7 +6,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
|
|
|
6
6
|
* Reads an `.xlsx` file.
|
|
7
7
|
* @param {(Blob|ArrayBuffer)} input
|
|
8
8
|
* @param {object} [options]
|
|
9
|
-
* @return {Promise<
|
|
9
|
+
* @return {Promise<Sheet[]>}
|
|
10
10
|
*/
|
|
11
11
|
export default function readXlsxFile(input, options) {
|
|
12
12
|
return unpackXlsxFile(input).then(function (contents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readXlsxFileUniversal.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileUniversal.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<
|
|
1
|
+
{"version":3,"file":"readXlsxFileUniversal.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","input","options","then","contents"],"sources":["../../source/export/readXlsxFileUniversal.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileUniversal.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(input, options) {\r\n\treturn unpackXlsxFile(input)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,8BAA8B;AACzD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACpD,OAAOJ,cAAc,CAACG,KAAK,CAAC,CAC1BE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
|
|
@@ -6,7 +6,7 @@ import parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js';
|
|
|
6
6
|
* Reads an `.xlsx` file.
|
|
7
7
|
* @param {(File|Blob|ArrayBuffer)} input
|
|
8
8
|
* @param {object} [options]
|
|
9
|
-
* @return {Promise<
|
|
9
|
+
* @return {Promise<Sheet[]>}
|
|
10
10
|
*/
|
|
11
11
|
export default function readXlsxFile(file, options) {
|
|
12
12
|
return unpackXlsxFile(file).then(function (contents) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readXlsxFileWebWorker.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","file","options","then","contents"],"sources":["../../source/export/readXlsxFileWebWorker.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<
|
|
1
|
+
{"version":3,"file":"readXlsxFileWebWorker.js","names":["xml","unpackXlsxFile","parseSpreadsheetContents","readXlsxFile","file","options","then","contents"],"sources":["../../source/export/readXlsxFileWebWorker.js"],"sourcesContent":["import xml from '../xml/xml.js'\r\n\r\nimport unpackXlsxFile from './unpackXlsxFileBrowser.js'\r\nimport parseSpreadsheetContents from '../xlsx/parseSpreadsheetContents.js'\r\n\r\n/**\r\n * Reads an `.xlsx` file.\r\n * @param {(File|Blob|ArrayBuffer)} input\r\n * @param {object} [options]\r\n * @return {Promise<Sheet[]>}\r\n */\r\nexport default function readXlsxFile(file, options) {\r\n\treturn unpackXlsxFile(file)\r\n\t\t.then((contents) => parseSpreadsheetContents(contents, xml, options))\r\n}"],"mappings":"AAAA,OAAOA,GAAG,MAAM,eAAe;AAE/B,OAAOC,cAAc,MAAM,4BAA4B;AACvD,OAAOC,wBAAwB,MAAM,qCAAqC;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAYA,CAACC,IAAI,EAAEC,OAAO,EAAE;EACnD,OAAOJ,cAAc,CAACG,IAAI,CAAC,CACzBE,IAAI,CAAC,UAACC,QAAQ;IAAA,OAAKL,wBAAwB,CAACK,QAAQ,EAAEP,GAAG,EAAEK,OAAO,CAAC;EAAA,EAAC;AACvE"}
|
|
@@ -56,7 +56,9 @@ export default function parseSheetData(data, schema, optionsCustom) {
|
|
|
56
56
|
object = _step$value.object,
|
|
57
57
|
rowErrors = _step$value.errors;
|
|
58
58
|
if (rowErrors) {
|
|
59
|
-
errors = errors.concat(rowErrors.map(
|
|
59
|
+
errors = errors.concat(rowErrors.map(
|
|
60
|
+
// Add row number property to each row error.
|
|
61
|
+
function (rowError) {
|
|
60
62
|
return _objectSpread(_objectSpread({}, rowError), {}, {
|
|
61
63
|
row: parsedRowIndex + 1
|
|
62
64
|
});
|
|
@@ -64,6 +66,7 @@ export default function parseSheetData(data, schema, optionsCustom) {
|
|
|
64
66
|
} else {
|
|
65
67
|
objects.push(object);
|
|
66
68
|
}
|
|
69
|
+
parsedRowIndex++;
|
|
67
70
|
}
|
|
68
71
|
if (errors.length > 0) {
|
|
69
72
|
return {
|