read-excel-file 5.7.0 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +45 -19
  3. package/bundle/read-excel-file.min.js +1 -1
  4. package/bundle/read-excel-file.min.js.map +1 -1
  5. package/commonjs/read/coordinates.js +7 -10
  6. package/commonjs/read/coordinates.js.map +1 -1
  7. package/commonjs/read/dropEmptyColumns.js +6 -18
  8. package/commonjs/read/dropEmptyColumns.js.map +1 -1
  9. package/commonjs/read/dropEmptyColumns.test.js.map +1 -1
  10. package/commonjs/read/dropEmptyRows.js +11 -23
  11. package/commonjs/read/dropEmptyRows.js.map +1 -1
  12. package/commonjs/read/dropEmptyRows.test.js.map +1 -1
  13. package/commonjs/read/getData.js +31 -43
  14. package/commonjs/read/getData.js.map +1 -1
  15. package/commonjs/read/isDateTimestamp.js +51 -40
  16. package/commonjs/read/isDateTimestamp.js.map +1 -1
  17. package/commonjs/read/parseCell.js +3 -10
  18. package/commonjs/read/parseCell.js.map +1 -1
  19. package/commonjs/read/parseCellValue.js +28 -59
  20. package/commonjs/read/parseCellValue.js.map +1 -1
  21. package/commonjs/read/parseCells.js +3 -7
  22. package/commonjs/read/parseCells.js.map +1 -1
  23. package/commonjs/read/parseDate.js +5 -5
  24. package/commonjs/read/parseDate.js.map +1 -1
  25. package/commonjs/read/parseDate.test.js.map +1 -1
  26. package/commonjs/read/parseDimensions.js +6 -18
  27. package/commonjs/read/parseDimensions.js.map +1 -1
  28. package/commonjs/read/parseFilePaths.js +4 -11
  29. package/commonjs/read/parseFilePaths.js.map +1 -1
  30. package/commonjs/read/parseProperties.js +6 -8
  31. package/commonjs/read/parseProperties.js.map +1 -1
  32. package/commonjs/read/parseSharedStrings.js +0 -3
  33. package/commonjs/read/parseSharedStrings.js.map +1 -1
  34. package/commonjs/read/parseSheet.js +3 -7
  35. package/commonjs/read/parseSheet.js.map +1 -1
  36. package/commonjs/read/parseStyles.js +13 -21
  37. package/commonjs/read/parseStyles.js.map +1 -1
  38. package/commonjs/read/readSheetNamesBrowser.js +0 -3
  39. package/commonjs/read/readSheetNamesBrowser.js.map +1 -1
  40. package/commonjs/read/readSheetNamesNode.js +0 -3
  41. package/commonjs/read/readSheetNamesNode.js.map +1 -1
  42. package/commonjs/read/readSheetNamesNode.test.js.map +1 -1
  43. package/commonjs/read/readSheetNamesWebWorker.js +0 -3
  44. package/commonjs/read/readSheetNamesWebWorker.js.map +1 -1
  45. package/commonjs/read/readXlsx.js +34 -42
  46. package/commonjs/read/readXlsx.js.map +1 -1
  47. package/commonjs/read/readXlsxFileBrowser.js +0 -5
  48. package/commonjs/read/readXlsxFileBrowser.js.map +1 -1
  49. package/commonjs/read/readXlsxFileContents.js +12 -22
  50. package/commonjs/read/readXlsxFileContents.js.map +1 -1
  51. package/commonjs/read/readXlsxFileNode.js +0 -5
  52. package/commonjs/read/readXlsxFileNode.js.map +1 -1
  53. package/commonjs/read/readXlsxFileNode.test.js.map +1 -1
  54. package/commonjs/read/readXlsxFileWebWorker.js +0 -5
  55. package/commonjs/read/readXlsxFileWebWorker.js.map +1 -1
  56. package/commonjs/read/schema/convertMapToSchema.js +1 -8
  57. package/commonjs/read/schema/convertMapToSchema.js.map +1 -1
  58. package/commonjs/read/schema/convertMapToSchema.test.js.map +1 -1
  59. package/commonjs/read/schema/convertToJson.js +143 -142
  60. package/commonjs/read/schema/convertToJson.js.map +1 -1
  61. package/commonjs/read/schema/convertToJson.legacy.js +60 -0
  62. package/commonjs/read/schema/convertToJson.legacy.js.map +1 -0
  63. package/commonjs/read/schema/convertToJson.legacy.test.js.map +1 -0
  64. package/commonjs/read/schema/convertToJson.spreadsheet.js +25 -0
  65. package/commonjs/read/schema/convertToJson.spreadsheet.js.map +1 -0
  66. package/commonjs/read/schema/convertToJson.spreadsheet.test.js.map +1 -0
  67. package/commonjs/read/schema/convertToJson.test.js.map +1 -1
  68. package/commonjs/read/unpackXlsxFileBrowser.js +3 -9
  69. package/commonjs/read/unpackXlsxFileBrowser.js.map +1 -1
  70. package/commonjs/read/unpackXlsxFileNode.js +9 -15
  71. package/commonjs/read/unpackXlsxFileNode.js.map +1 -1
  72. package/commonjs/types/Boolean.js +0 -4
  73. package/commonjs/types/Boolean.js.map +1 -1
  74. package/commonjs/types/Date.js +0 -12
  75. package/commonjs/types/Date.js.map +1 -1
  76. package/commonjs/types/Email.js +0 -7
  77. package/commonjs/types/Email.js.map +1 -1
  78. package/commonjs/types/Email.test.js.map +1 -1
  79. package/commonjs/types/Integer.js +0 -7
  80. package/commonjs/types/Integer.js.map +1 -1
  81. package/commonjs/types/Integer.test.js.map +1 -1
  82. package/commonjs/types/InvalidError.js +8 -28
  83. package/commonjs/types/InvalidError.js.map +1 -1
  84. package/commonjs/types/Number.js +2 -10
  85. package/commonjs/types/Number.js.map +1 -1
  86. package/commonjs/types/String.js +4 -11
  87. package/commonjs/types/String.js.map +1 -1
  88. package/commonjs/types/URL.js +5 -8
  89. package/commonjs/types/URL.js.map +1 -1
  90. package/commonjs/types/URL.test.js.map +1 -1
  91. package/commonjs/xml/dom.js +6 -25
  92. package/commonjs/xml/dom.js.map +1 -1
  93. package/commonjs/xml/xlsx.js +1 -24
  94. package/commonjs/xml/xlsx.js.map +1 -1
  95. package/commonjs/xml/xml.js +1 -4
  96. package/commonjs/xml/xml.js.map +1 -1
  97. package/commonjs/xml/xmlBrowser.js +1 -2
  98. package/commonjs/xml/xmlBrowser.js.map +1 -1
  99. package/commonjs/xml/xpath/xlsx-xpath.js +3 -16
  100. package/commonjs/xml/xpath/xlsx-xpath.js.map +1 -1
  101. package/commonjs/xml/xpath/xpathBrowser.js +3 -5
  102. package/commonjs/xml/xpath/xpathBrowser.js.map +1 -1
  103. package/commonjs/xml/xpath/xpathNode.js +1 -5
  104. package/commonjs/xml/xpath/xpathNode.js.map +1 -1
  105. package/map/index.cjs +2 -0
  106. package/map/index.cjs.js +7 -0
  107. package/map/index.d.ts +11 -0
  108. package/map/index.js +1 -0
  109. package/map/package.json +17 -0
  110. package/modules/read/coordinates.js +7 -8
  111. package/modules/read/coordinates.js.map +1 -1
  112. package/modules/read/dropEmptyColumns.js +6 -17
  113. package/modules/read/dropEmptyColumns.js.map +1 -1
  114. package/modules/read/dropEmptyColumns.test.js.map +1 -1
  115. package/modules/read/dropEmptyRows.js +11 -22
  116. package/modules/read/dropEmptyRows.js.map +1 -1
  117. package/modules/read/dropEmptyRows.test.js.map +1 -1
  118. package/modules/read/getData.js +31 -39
  119. package/modules/read/getData.js.map +1 -1
  120. package/modules/read/isDateTimestamp.js +52 -39
  121. package/modules/read/isDateTimestamp.js.map +1 -1
  122. package/modules/read/parseCell.js +6 -6
  123. package/modules/read/parseCell.js.map +1 -1
  124. package/modules/read/parseCellValue.js +30 -55
  125. package/modules/read/parseCellValue.js.map +1 -1
  126. package/modules/read/parseCells.js +3 -3
  127. package/modules/read/parseCells.js.map +1 -1
  128. package/modules/read/parseDate.js +5 -4
  129. package/modules/read/parseDate.js.map +1 -1
  130. package/modules/read/parseDate.test.js.map +1 -1
  131. package/modules/read/parseDimensions.js +9 -17
  132. package/modules/read/parseDimensions.js.map +1 -1
  133. package/modules/read/parseFilePaths.js +5 -10
  134. package/modules/read/parseFilePaths.js.map +1 -1
  135. package/modules/read/parseProperties.js +8 -7
  136. package/modules/read/parseProperties.js.map +1 -1
  137. package/modules/read/parseSharedStrings.js +0 -1
  138. package/modules/read/parseSharedStrings.js.map +1 -1
  139. package/modules/read/parseSheet.js +3 -2
  140. package/modules/read/parseSheet.js.map +1 -1
  141. package/modules/read/parseStyles.js +16 -21
  142. package/modules/read/parseStyles.js.map +1 -1
  143. package/modules/read/readSheetNamesBrowser.js +1 -1
  144. package/modules/read/readSheetNamesBrowser.js.map +1 -1
  145. package/modules/read/readSheetNamesNode.js +1 -1
  146. package/modules/read/readSheetNamesNode.js.map +1 -1
  147. package/modules/read/readSheetNamesNode.test.js.map +1 -1
  148. package/modules/read/readSheetNamesWebWorker.js +1 -1
  149. package/modules/read/readSheetNamesWebWorker.js.map +1 -1
  150. package/modules/read/readXlsx.js +37 -35
  151. package/modules/read/readXlsx.js.map +1 -1
  152. package/modules/read/readXlsxFileBrowser.js +1 -1
  153. package/modules/read/readXlsxFileBrowser.js.map +1 -1
  154. package/modules/read/readXlsxFileContents.js +12 -17
  155. package/modules/read/readXlsxFileContents.js.map +1 -1
  156. package/modules/read/readXlsxFileNode.js +1 -1
  157. package/modules/read/readXlsxFileNode.js.map +1 -1
  158. package/modules/read/readXlsxFileNode.test.js.map +1 -1
  159. package/modules/read/readXlsxFileWebWorker.js +1 -1
  160. package/modules/read/readXlsxFileWebWorker.js.map +1 -1
  161. package/modules/read/schema/convertMapToSchema.js +1 -7
  162. package/modules/read/schema/convertMapToSchema.js.map +1 -1
  163. package/modules/read/schema/convertMapToSchema.test.js.map +1 -1
  164. package/modules/read/schema/convertToJson.js +143 -133
  165. package/modules/read/schema/convertToJson.js.map +1 -1
  166. package/modules/read/schema/convertToJson.legacy.js +53 -0
  167. package/modules/read/schema/convertToJson.legacy.js.map +1 -0
  168. package/modules/read/schema/convertToJson.legacy.test.js.map +1 -0
  169. package/modules/read/schema/convertToJson.spreadsheet.js +19 -0
  170. package/modules/read/schema/convertToJson.spreadsheet.js.map +1 -0
  171. package/modules/read/schema/convertToJson.spreadsheet.test.js.map +1 -0
  172. package/modules/read/schema/convertToJson.test.js.map +1 -1
  173. package/modules/read/unpackXlsxFileBrowser.js +4 -7
  174. package/modules/read/unpackXlsxFileBrowser.js.map +1 -1
  175. package/modules/read/unpackXlsxFileNode.js +9 -7
  176. package/modules/read/unpackXlsxFileNode.js.map +1 -1
  177. package/modules/types/Boolean.js +0 -1
  178. package/modules/types/Boolean.js.map +1 -1
  179. package/modules/types/Date.js +0 -8
  180. package/modules/types/Date.js.map +1 -1
  181. package/modules/types/Email.js +0 -2
  182. package/modules/types/Email.js.map +1 -1
  183. package/modules/types/Email.test.js.map +1 -1
  184. package/modules/types/Integer.js +0 -2
  185. package/modules/types/Integer.js.map +1 -1
  186. package/modules/types/Integer.test.js.map +1 -1
  187. package/modules/types/InvalidError.js +7 -25
  188. package/modules/types/InvalidError.js.map +1 -1
  189. package/modules/types/Number.js +2 -7
  190. package/modules/types/Number.js.map +1 -1
  191. package/modules/types/String.js +4 -8
  192. package/modules/types/String.js.map +1 -1
  193. package/modules/types/URL.js +5 -4
  194. package/modules/types/URL.js.map +1 -1
  195. package/modules/types/URL.test.js.map +1 -1
  196. package/modules/xml/dom.js +6 -18
  197. package/modules/xml/dom.js.map +1 -1
  198. package/modules/xml/xlsx.js +4 -13
  199. package/modules/xml/xlsx.js.map +1 -1
  200. package/modules/xml/xml.js.map +1 -1
  201. package/modules/xml/xmlBrowser.js.map +1 -1
  202. package/modules/xml/xpath/xlsx-xpath.js +2 -1
  203. package/modules/xml/xpath/xlsx-xpath.js.map +1 -1
  204. package/modules/xml/xpath/xpathBrowser.js +3 -4
  205. package/modules/xml/xpath/xpathBrowser.js.map +1 -1
  206. package/modules/xml/xpath/xpathNode.js +1 -0
  207. package/modules/xml/xpath/xpathNode.js.map +1 -1
  208. package/package.json +6 -1
  209. package/schema/index.cjs +2 -2
  210. package/schema/index.cjs.js +2 -2
  211. package/schema/index.d.ts +7 -2
  212. package/schema/index.js +1 -1
  213. package/types.d.ts +26 -3
@@ -1,4 +1,5 @@
1
1
  // This file is no longer used.
2
+
2
3
  // Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.
3
4
  // https://github.com/catamphetamine/read-excel-file/issues/26
4
5
  // The inclusion of `xpath` package in `./xpathNode`
@@ -13,16 +14,14 @@ export default function xpath(document, node, path) {
13
14
  var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
14
15
  var nodes = document.evaluate(path, node || document, function (prefix) {
15
16
  return namespaces[prefix];
16
- }, XPathResult.ANY_TYPE, null); // Convert iterator to an array.
17
-
17
+ }, XPathResult.ANY_TYPE, null);
18
+ // Convert iterator to an array.
18
19
  var results = [];
19
20
  var result = nodes.iterateNext();
20
-
21
21
  while (result) {
22
22
  results.push(result);
23
23
  result = nodes.iterateNext();
24
24
  }
25
-
26
25
  return results;
27
26
  }
28
27
  //# sourceMappingURL=xpathBrowser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"xpathBrowser.js","names":["xpath","document","node","path","namespaces","nodes","evaluate","prefix","XPathResult","ANY_TYPE","results","result","iterateNext","push"],"sources":["../../../source/xml/xpath/xpathBrowser.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nexport default function xpath(document, node, path, namespaces = {}) {\r\n\tconst nodes = document.evaluate(\r\n\t\tpath,\r\n\t\tnode || document,\r\n\t\tprefix => namespaces[prefix],\r\n\t\tXPathResult.ANY_TYPE,\r\n\t\tnull\r\n\t)\r\n\t// Convert iterator to an array.\r\n\tconst results = []\r\n\tlet result = nodes.iterateNext()\r\n\twhile (result) {\r\n\t\tresults.push(result)\r\n\t\tresult = nodes.iterateNext()\r\n\t}\r\n\treturn results\r\n}"],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,KAAT,CAAeC,QAAf,EAAyBC,IAAzB,EAA+BC,IAA/B,EAAsD;EAAA,IAAjBC,UAAiB,uEAAJ,EAAI;EACpE,IAAMC,KAAK,GAAGJ,QAAQ,CAACK,QAAT,CACbH,IADa,EAEbD,IAAI,IAAID,QAFK,EAGb,UAAAM,MAAM;IAAA,OAAIH,UAAU,CAACG,MAAD,CAAd;EAAA,CAHO,EAIbC,WAAW,CAACC,QAJC,EAKb,IALa,CAAd,CADoE,CAQpE;;EACA,IAAMC,OAAO,GAAG,EAAhB;EACA,IAAIC,MAAM,GAAGN,KAAK,CAACO,WAAN,EAAb;;EACA,OAAOD,MAAP,EAAe;IACdD,OAAO,CAACG,IAAR,CAAaF,MAAb;IACAA,MAAM,GAAGN,KAAK,CAACO,WAAN,EAAT;EACA;;EACD,OAAOF,OAAP;AACA"}
1
+ {"version":3,"file":"xpathBrowser.js","names":["xpath","document","node","path","namespaces","arguments","length","undefined","nodes","evaluate","prefix","XPathResult","ANY_TYPE","results","result","iterateNext","push"],"sources":["../../../source/xml/xpath/xpathBrowser.js"],"sourcesContent":["// This file is no longer used.\r\n\r\n// Turns out IE11 doesn't support XPath, so not using `./xpathBrowser` for browsers.\r\n// https://github.com/catamphetamine/read-excel-file/issues/26\r\n// The inclusion of `xpath` package in `./xpathNode`\r\n// increases the bundle size by about 100 kilobytes.\r\n// IE11 is a wide-spread browser and it's unlikely that\r\n// anyone would ignore it for now.\r\n// There could be a separate export `read-excel-file/ie11`\r\n// for using `./xpathNode` instead of `./xpathBrowser`\r\n// but this library has been migrated to not using `xpath` anyway.\r\n// This code is just alternative/historical now, it seems.\r\nexport default function xpath(document, node, path, namespaces = {}) {\r\n\tconst nodes = document.evaluate(\r\n\t\tpath,\r\n\t\tnode || document,\r\n\t\tprefix => namespaces[prefix],\r\n\t\tXPathResult.ANY_TYPE,\r\n\t\tnull\r\n\t)\r\n\t// Convert iterator to an array.\r\n\tconst results = []\r\n\tlet result = nodes.iterateNext()\r\n\twhile (result) {\r\n\t\tresults.push(result)\r\n\t\tresult = nodes.iterateNext()\r\n\t}\r\n\treturn results\r\n}"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,KAAKA,CAACC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClE,IAAMG,KAAK,GAAGP,QAAQ,CAACQ,QAAQ,CAC9BN,IAAI,EACJD,IAAI,IAAID,QAAQ,EAChB,UAAAS,MAAM;IAAA,OAAIN,UAAU,CAACM,MAAM,CAAC;EAAA,GAC5BC,WAAW,CAACC,QAAQ,EACpB,IACD,CAAC;EACD;EACA,IAAMC,OAAO,GAAG,EAAE;EAClB,IAAIC,MAAM,GAAGN,KAAK,CAACO,WAAW,CAAC,CAAC;EAChC,OAAOD,MAAM,EAAE;IACdD,OAAO,CAACG,IAAI,CAACF,MAAM,CAAC;IACpBA,MAAM,GAAGN,KAAK,CAACO,WAAW,CAAC,CAAC;EAC7B;EACA,OAAOF,OAAO;AACf"}
@@ -1,4 +1,5 @@
1
1
  // This file is no longer used.
2
+
2
3
  import xpath from 'xpath';
3
4
  export default function (document, node, path) {
4
5
  var namespaces = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
@@ -1 +1 @@
1
- {"version":3,"file":"xpathNode.js","names":["xpath","document","node","path","namespaces","select","useNamespaces"],"sources":["../../../source/xml/xpath/xpathNode.js"],"sourcesContent":["// This file is no longer used.\r\n\r\nimport xpath from 'xpath'\r\n\r\nexport default function(document, node, path, namespaces = {}) {\r\n\tconst select = xpath.useNamespaces(namespaces)\r\n\treturn select(path, node || document)\r\n}"],"mappings":"AAAA;AAEA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,eAAe,UAASC,QAAT,EAAmBC,IAAnB,EAAyBC,IAAzB,EAAgD;EAAA,IAAjBC,UAAiB,uEAAJ,EAAI;EAC9D,IAAMC,MAAM,GAAGL,KAAK,CAACM,aAAN,CAAoBF,UAApB,CAAf;EACA,OAAOC,MAAM,CAACF,IAAD,EAAOD,IAAI,IAAID,QAAf,CAAb;AACA"}
1
+ {"version":3,"file":"xpathNode.js","names":["xpath","document","node","path","namespaces","arguments","length","undefined","select","useNamespaces"],"sources":["../../../source/xml/xpath/xpathNode.js"],"sourcesContent":["// This file is no longer used.\r\n\r\nimport xpath from 'xpath'\r\n\r\nexport default function(document, node, path, namespaces = {}) {\r\n\tconst select = xpath.useNamespaces(namespaces)\r\n\treturn select(path, node || document)\r\n}"],"mappings":"AAAA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AAEzB,eAAe,UAASC,QAAQ,EAAEC,IAAI,EAAEC,IAAI,EAAmB;EAAA,IAAjBC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC5D,IAAMG,MAAM,GAAGR,KAAK,CAACS,aAAa,CAACL,UAAU,CAAC;EAC9C,OAAOI,MAAM,CAACL,IAAI,EAAED,IAAI,IAAID,QAAQ,CAAC;AACtC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "read-excel-file",
3
- "version": "5.7.0",
3
+ "version": "5.8.0",
4
4
  "description": "Read small to medium `*.xlsx` files in a browser or Node.js. Parse to JSON with a strict schema.",
5
5
  "module": "index.js",
6
6
  "main": "index.cjs",
@@ -26,6 +26,11 @@
26
26
  "import": "./schema/index.js",
27
27
  "require": "./schema/index.cjs"
28
28
  },
29
+ "./map": {
30
+ "types": "./map/index.d.ts",
31
+ "import": "./map/index.js",
32
+ "require": "./map/index.cjs"
33
+ },
29
34
  "./package.json": "./package.json"
30
35
  },
31
36
  "sideEffects": false,
package/schema/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- exports = module.exports = require('../commonjs/read/schema/convertToJson.js').default
2
- exports['default'] = require('../commonjs/read/schema/convertToJson.js').default
1
+ exports = module.exports = require('../commonjs/read/schema/convertToJson.legacy.js').default
2
+ exports['default'] = require('../commonjs/read/schema/convertToJson.legacy.js').default
@@ -3,5 +3,5 @@
3
3
  // It fixes the issue when some software doesn't see files with `*.cjs` file extensions
4
4
  // when used as the `main` property value in `package.json`.
5
5
 
6
- exports = module.exports = require('../commonjs/read/schema/convertToJson.js').default
7
- exports['default'] = require('../commonjs/read/schema/convertToJson.js').default
6
+ exports = module.exports = require('../commonjs/read/schema/convertToJson.legacy.js').default
7
+ exports['default'] = require('../commonjs/read/schema/convertToJson.legacy.js').default
package/schema/index.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import {
2
2
  Row,
3
3
  Schema
4
- } from '../types.d';
4
+ } from '../types.d.js';
5
5
 
6
- export default function convert(data: Row[], schema: Schema): object[];
6
+ export default function mapWithLegacyBehavior(data: Row[], schema: Schema, options?: {
7
+ ignoreEmptyRows?: boolean,
8
+ includeNullValues?: boolean,
9
+ isColumnOriented?: boolean,
10
+ rowMap?: Record<string, number>
11
+ }): object[];
package/schema/index.js CHANGED
@@ -1 +1 @@
1
- export { default as default } from '../modules/read/schema/convertToJson.js'
1
+ export { default as default } from '../modules/read/schema/convertToJson.legacy.js'
package/types.d.ts CHANGED
@@ -16,7 +16,7 @@ type BasicType =
16
16
 
17
17
  export type Type<T> = (value: Cell) => T | undefined;
18
18
 
19
- type SchemaEntryRequired = boolean | (row: Row) => boolean;
19
+ type SchemaEntryRequired = boolean | ((row: Row) => boolean);
20
20
 
21
21
  interface SchemaEntryBasic<T> {
22
22
  prop: string;
@@ -68,11 +68,16 @@ interface ParseCommonOptions {
68
68
  parseNumber?: (string: string) => any;
69
69
  }
70
70
 
71
- export interface ParseWithSchemaOptions<T extends object> extends ParseCommonOptions {
71
+ export interface ParseWithSchemaOptions<T extends object> extends ParseCommonOptions, MappingParametersReadExcelFile {
72
72
  schema: Schema;
73
73
  transformData?: (rows: Row[]) => Row[];
74
- includeNullValues?: boolean;
75
74
  ignoreEmptyRows?: boolean;
75
+ // `includeNullValues: true` parameter is deprecated.
76
+ // It could be replaced with the following combination of parameters:
77
+ // * `schemaPropertyValueForMissingColumn: null`
78
+ // * `schemaPropertyValueForEmptyCell: null`
79
+ // * `getEmptyObjectValue = () => null`
80
+ includeNullValues?: boolean;
76
81
  }
77
82
 
78
83
  type MapProperty = string;
@@ -89,4 +94,22 @@ export interface ParseWithMapOptions extends ParseCommonOptions {
89
94
 
90
95
  export interface ParseWithoutSchemaOptions extends ParseCommonOptions {
91
96
  dateFormat?: string;
97
+ }
98
+
99
+ interface MappingParametersCommon {
100
+ schemaPropertyValueForMissingColumn?: any;
101
+ schemaPropertyShouldSkipRequiredValidationForMissingColumn?(column: string, parameters: { object: Record<string, any> }): boolean;
102
+ getEmptyObjectValue?(object: Record<string, any>, parameters: { path?: string }): any;
103
+ getEmptyArrayValue?(array: any[], parameters: { path: string }): any;
104
+ }
105
+
106
+ interface MappingParametersReadExcelFile extends MappingParametersCommon {
107
+ schemaPropertyValueForEmptyCell?: null | undefined;
108
+ }
109
+
110
+ export interface MappingParameters extends MappingParametersCommon {
111
+ schemaPropertyValueForUndefinedCellValue?: any;
112
+ schemaPropertyValueForNullCellValue?: any;
113
+ isColumnOriented?: boolean;
114
+ rowIndexMap?: Record<string, number>;
92
115
  }