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":"parseSpreadsheetContents.js","names":["parseSpreadsheetInfo","parseFilePaths","parseStyles","parseSharedStrings","parseSheet","parseSpreadsheetContents","contents","xml","options","arguments","length","undefined","getFileContent","filePath","Error","concat","filePaths","sharedStrings","styles","_parseSpreadsheetInfo","sheets","epoch1904","sheetIdsToRead","map","sheet","getSheetId","sheetsData","_i","_Object$keys","Object","keys","sheetId","includes","push","getSheetNameById","data","_iterator","_createForOfIteratorHelperLoose","_step","done","_sheet","value","name","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":["parseSpreadsheetInfo","parseFilePaths","parseStyles","parseSharedStrings","parseSheet","parseSpreadsheetContents","contents","xml","options","arguments","length","undefined","getFileContent","filePath","Error","concat","filePaths","sharedStrings","styles","_parseSpreadsheetInfo","sheets","epoch1904","sheetIdsToRead","map","sheet","getSheetId","sheetsData","_i","_Object$keys","Object","keys","sheetId","includes","push","getSheetNameById","data","_iterator","_createForOfIteratorHelperLoose","_step","done","_sheet","value","name","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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"}
|
package/node/index.d.ts
CHANGED
|
@@ -1,35 +1,48 @@
|
|
|
1
1
|
// The contents of this file is identical between the different exports:
|
|
2
2
|
// `/node`, `/browser`, etc.
|
|
3
3
|
|
|
4
|
-
import { Input } from './input.d.js'
|
|
4
|
+
import type { Input } from './input.d.js'
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
SheetData
|
|
8
|
-
|
|
9
|
-
ReadFileResult
|
|
10
|
-
} from '../types/types.d.js';
|
|
6
|
+
import type {
|
|
7
|
+
SheetData
|
|
8
|
+
} from '../types/SheetData.d.js'
|
|
11
9
|
|
|
12
|
-
import {
|
|
10
|
+
import type {
|
|
11
|
+
Sheet
|
|
12
|
+
} from '../types/Sheet.d.js'
|
|
13
|
+
|
|
14
|
+
import type {
|
|
15
|
+
Options
|
|
16
|
+
} from '../types/Options.d.js'
|
|
17
|
+
|
|
18
|
+
import type {
|
|
19
|
+
OptionsWithSchema
|
|
20
|
+
} from '../types/OptionsWithSchema.d.js'
|
|
21
|
+
|
|
22
|
+
import type {
|
|
13
23
|
ParseSheetDataOptions,
|
|
14
24
|
ParseSheetDataResult
|
|
15
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
25
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
16
26
|
|
|
17
|
-
import {
|
|
27
|
+
import type {
|
|
18
28
|
Schema
|
|
19
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
29
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
20
30
|
|
|
21
|
-
import {
|
|
31
|
+
import type {
|
|
22
32
|
ParseSheetDataError
|
|
23
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
33
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
24
34
|
|
|
25
|
-
export {
|
|
35
|
+
export type {
|
|
26
36
|
CellValue,
|
|
27
37
|
Row,
|
|
28
|
-
SheetData
|
|
38
|
+
SheetData
|
|
39
|
+
} from '../types/SheetData.d.js'
|
|
40
|
+
|
|
41
|
+
export type {
|
|
29
42
|
Sheet
|
|
30
|
-
} from '../types/
|
|
43
|
+
} from '../types/Sheet.d.js'
|
|
31
44
|
|
|
32
|
-
export {
|
|
45
|
+
export type {
|
|
33
46
|
ParseSheetDataCustomType,
|
|
34
47
|
// Base `type`s when parsing data.
|
|
35
48
|
StringType as String,
|
|
@@ -40,45 +53,55 @@ export {
|
|
|
40
53
|
Integer,
|
|
41
54
|
Email,
|
|
42
55
|
URL
|
|
43
|
-
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
56
|
+
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
44
57
|
|
|
45
|
-
export {
|
|
58
|
+
export type {
|
|
46
59
|
ParseSheetDataCustomTypeErrorMessage,
|
|
47
60
|
ParseSheetDataCustomTypeErrorReason,
|
|
48
61
|
ParseSheetDataError,
|
|
49
62
|
ParseSheetDataValueRequiredError
|
|
50
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
63
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
51
64
|
|
|
52
|
-
export {
|
|
65
|
+
export type {
|
|
53
66
|
ParseSheetDataResult
|
|
54
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
67
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
55
68
|
|
|
56
|
-
export {
|
|
69
|
+
export type {
|
|
57
70
|
Schema
|
|
58
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
71
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
59
72
|
|
|
60
73
|
export default function readXlsxFile<ParsedNumber = number>(
|
|
61
74
|
input: Input,
|
|
62
|
-
options?:
|
|
63
|
-
): Promise<
|
|
75
|
+
options?: Options<ParsedNumber>
|
|
76
|
+
): Promise<Sheet<ParsedNumber>[]>;
|
|
64
77
|
|
|
65
78
|
export function readSheet<ParsedNumber = number>(
|
|
66
79
|
input: Input,
|
|
67
80
|
sheet?: number | string,
|
|
68
|
-
options?:
|
|
81
|
+
options?: Options<ParsedNumber>
|
|
69
82
|
): Promise<SheetData<ParsedNumber>>;
|
|
70
83
|
|
|
71
84
|
export function readSheet<ParsedNumber = number>(
|
|
72
85
|
input: Input,
|
|
73
|
-
options?:
|
|
86
|
+
options?: Options<ParsedNumber>
|
|
74
87
|
): Promise<SheetData<ParsedNumber>>;
|
|
75
88
|
|
|
89
|
+
export function readSheet<
|
|
90
|
+
Object extends object,
|
|
91
|
+
ColumnTitle extends string = string,
|
|
92
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>,
|
|
93
|
+
ParsedNumber = number
|
|
94
|
+
>(
|
|
95
|
+
input: Input,
|
|
96
|
+
options: OptionsWithSchema<Object, ColumnTitle, ParsedNumber>
|
|
97
|
+
): Promise<ParseSheetDataResult<Object, ColumnTitle, Error>>;
|
|
98
|
+
|
|
76
99
|
export function parseSheetData<
|
|
77
100
|
Object extends object,
|
|
78
|
-
ColumnTitle extends string,
|
|
79
|
-
Error extends ParseSheetDataError
|
|
101
|
+
ColumnTitle extends string = string,
|
|
102
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>
|
|
80
103
|
>(
|
|
81
104
|
data: SheetData,
|
|
82
105
|
schema: Schema<Object, ColumnTitle>,
|
|
83
106
|
options?: ParseSheetDataOptions
|
|
84
|
-
): ParseSheetDataResult<Object, Error>;
|
|
107
|
+
): ParseSheetDataResult<Object, ColumnTitle, Error>;
|
package/node/input.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Options } from './Options.d.js'
|
|
2
|
+
import type { Schema } from './parseSheetData/parseSheetDataSchema.d.js'
|
|
3
|
+
|
|
4
|
+
export interface OptionsWithSchema<
|
|
5
|
+
Object extends object,
|
|
6
|
+
ColumnTitle extends string = string,
|
|
7
|
+
ParsedNumber = number
|
|
8
|
+
> extends Options<ParsedNumber> {
|
|
9
|
+
schema: Schema<Object, ColumnTitle>;
|
|
10
|
+
}
|
package/types/Sheet.d.ts
ADDED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ParseSheetDataError } from './parseSheetDataError.d.js'
|
|
1
|
+
import type { ParseSheetDataError } from './parseSheetDataError.d.js'
|
|
2
2
|
|
|
3
3
|
interface ParseSheetDataResultSuccess<Object> {
|
|
4
4
|
objects: Object[];
|
|
@@ -13,8 +13,9 @@ interface ParseSheetDataResultError<
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export type ParseSheetDataResult<
|
|
16
|
-
Object,
|
|
17
|
-
|
|
16
|
+
Object extends object,
|
|
17
|
+
ColumnTitle extends string,
|
|
18
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>
|
|
18
19
|
> =
|
|
19
20
|
| ParseSheetDataResultSuccess<Object>
|
|
20
21
|
| ParseSheetDataResultError<Error>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ParseSheetDataValueType, ParseSheetDataCustomType } from './parseSheetDataValueType.d.js'
|
|
1
|
+
import type { ParseSheetDataValueType, ParseSheetDataCustomType } from './parseSheetDataValueType.d.js'
|
|
2
2
|
|
|
3
3
|
type SchemaEntryRequiredOrNot<Object> = boolean | ((row: Object) => boolean);
|
|
4
4
|
|
|
5
5
|
interface SchemaEntryForValue<
|
|
6
6
|
Key extends keyof Object,
|
|
7
|
-
Object,
|
|
8
|
-
TopLevelObject,
|
|
7
|
+
Object extends object,
|
|
8
|
+
TopLevelObject extends object,
|
|
9
9
|
ColumnTitle extends string
|
|
10
10
|
> {
|
|
11
11
|
column: ColumnTitle;
|
|
@@ -19,28 +19,30 @@ interface SchemaEntryForValue<
|
|
|
19
19
|
// https://dev.to/busypeoples/notes-on-typescript-recursive-types-and-immutability-5ck1
|
|
20
20
|
interface SchemaEntryRecursive<
|
|
21
21
|
Key extends keyof Object,
|
|
22
|
-
Object,
|
|
23
|
-
TopLevelObject,
|
|
22
|
+
Object extends object,
|
|
23
|
+
TopLevelObject extends object,
|
|
24
24
|
ColumnTitle extends string
|
|
25
25
|
> {
|
|
26
|
-
schema:
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
26
|
+
schema: Object[Key] extends object
|
|
27
|
+
? Record<
|
|
28
|
+
keyof Object[Key],
|
|
29
|
+
SchemaEntry<keyof Object[Key], Object[Key], TopLevelObject, ColumnTitle>
|
|
30
|
+
>
|
|
31
|
+
: never;
|
|
30
32
|
required?: SchemaEntryRequiredOrNot<TopLevelObject>;
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
type SchemaEntry<
|
|
34
36
|
Key extends keyof Object,
|
|
35
|
-
Object,
|
|
36
|
-
TopLevelObject,
|
|
37
|
+
Object extends object,
|
|
38
|
+
TopLevelObject extends object,
|
|
37
39
|
ColumnTitle extends string
|
|
38
40
|
> =
|
|
39
41
|
| SchemaEntryForValue<Key, Object, TopLevelObject, ColumnTitle>
|
|
40
42
|
| SchemaEntryRecursive<Key, Object, TopLevelObject, ColumnTitle>;
|
|
41
43
|
|
|
42
44
|
export type Schema<
|
|
43
|
-
Object
|
|
45
|
+
Object extends object,
|
|
44
46
|
ColumnTitle extends string = string
|
|
45
47
|
> = Record<
|
|
46
48
|
keyof Object,
|
package/universal/index.d.ts
CHANGED
|
@@ -1,35 +1,48 @@
|
|
|
1
1
|
// The contents of this file is identical between the different exports:
|
|
2
2
|
// `/node`, `/browser`, etc.
|
|
3
3
|
|
|
4
|
-
import { Input } from './input.d.js'
|
|
4
|
+
import type { Input } from './input.d.js'
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
SheetData
|
|
8
|
-
|
|
9
|
-
ReadFileResult
|
|
10
|
-
} from '../types/types.d.js';
|
|
6
|
+
import type {
|
|
7
|
+
SheetData
|
|
8
|
+
} from '../types/SheetData.d.js'
|
|
11
9
|
|
|
12
|
-
import {
|
|
10
|
+
import type {
|
|
11
|
+
Sheet
|
|
12
|
+
} from '../types/Sheet.d.js'
|
|
13
|
+
|
|
14
|
+
import type {
|
|
15
|
+
Options
|
|
16
|
+
} from '../types/Options.d.js'
|
|
17
|
+
|
|
18
|
+
import type {
|
|
19
|
+
OptionsWithSchema
|
|
20
|
+
} from '../types/OptionsWithSchema.d.js'
|
|
21
|
+
|
|
22
|
+
import type {
|
|
13
23
|
ParseSheetDataOptions,
|
|
14
24
|
ParseSheetDataResult
|
|
15
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
25
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
16
26
|
|
|
17
|
-
import {
|
|
27
|
+
import type {
|
|
18
28
|
Schema
|
|
19
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
29
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
20
30
|
|
|
21
|
-
import {
|
|
31
|
+
import type {
|
|
22
32
|
ParseSheetDataError
|
|
23
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
33
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
24
34
|
|
|
25
|
-
export {
|
|
35
|
+
export type {
|
|
26
36
|
CellValue,
|
|
27
37
|
Row,
|
|
28
|
-
SheetData
|
|
38
|
+
SheetData
|
|
39
|
+
} from '../types/SheetData.d.js'
|
|
40
|
+
|
|
41
|
+
export type {
|
|
29
42
|
Sheet
|
|
30
|
-
} from '../types/
|
|
43
|
+
} from '../types/Sheet.d.js'
|
|
31
44
|
|
|
32
|
-
export {
|
|
45
|
+
export type {
|
|
33
46
|
ParseSheetDataCustomType,
|
|
34
47
|
// Base `type`s when parsing data.
|
|
35
48
|
StringType as String,
|
|
@@ -40,45 +53,55 @@ export {
|
|
|
40
53
|
Integer,
|
|
41
54
|
Email,
|
|
42
55
|
URL
|
|
43
|
-
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
56
|
+
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
44
57
|
|
|
45
|
-
export {
|
|
58
|
+
export type {
|
|
46
59
|
ParseSheetDataCustomTypeErrorMessage,
|
|
47
60
|
ParseSheetDataCustomTypeErrorReason,
|
|
48
61
|
ParseSheetDataError,
|
|
49
62
|
ParseSheetDataValueRequiredError
|
|
50
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
63
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
51
64
|
|
|
52
|
-
export {
|
|
65
|
+
export type {
|
|
53
66
|
ParseSheetDataResult
|
|
54
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
67
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
55
68
|
|
|
56
|
-
export {
|
|
69
|
+
export type {
|
|
57
70
|
Schema
|
|
58
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
71
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
59
72
|
|
|
60
73
|
export default function readXlsxFile<ParsedNumber = number>(
|
|
61
74
|
input: Input,
|
|
62
|
-
options?:
|
|
63
|
-
): Promise<
|
|
75
|
+
options?: Options<ParsedNumber>
|
|
76
|
+
): Promise<Sheet<ParsedNumber>[]>;
|
|
64
77
|
|
|
65
78
|
export function readSheet<ParsedNumber = number>(
|
|
66
79
|
input: Input,
|
|
67
80
|
sheet?: number | string,
|
|
68
|
-
options?:
|
|
81
|
+
options?: Options<ParsedNumber>
|
|
69
82
|
): Promise<SheetData<ParsedNumber>>;
|
|
70
83
|
|
|
71
84
|
export function readSheet<ParsedNumber = number>(
|
|
72
85
|
input: Input,
|
|
73
|
-
options?:
|
|
86
|
+
options?: Options<ParsedNumber>
|
|
74
87
|
): Promise<SheetData<ParsedNumber>>;
|
|
75
88
|
|
|
89
|
+
export function readSheet<
|
|
90
|
+
Object extends object,
|
|
91
|
+
ColumnTitle extends string = string,
|
|
92
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>,
|
|
93
|
+
ParsedNumber = number
|
|
94
|
+
>(
|
|
95
|
+
input: Input,
|
|
96
|
+
options: OptionsWithSchema<Object, ColumnTitle, ParsedNumber>
|
|
97
|
+
): Promise<ParseSheetDataResult<Object, ColumnTitle, Error>>;
|
|
98
|
+
|
|
76
99
|
export function parseSheetData<
|
|
77
100
|
Object extends object,
|
|
78
|
-
ColumnTitle extends string,
|
|
79
|
-
Error extends ParseSheetDataError
|
|
101
|
+
ColumnTitle extends string = string,
|
|
102
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>
|
|
80
103
|
>(
|
|
81
104
|
data: SheetData,
|
|
82
105
|
schema: Schema<Object, ColumnTitle>,
|
|
83
106
|
options?: ParseSheetDataOptions
|
|
84
|
-
): ParseSheetDataResult<Object, Error>;
|
|
107
|
+
): ParseSheetDataResult<Object, ColumnTitle, Error>;
|
package/web-worker/index.d.ts
CHANGED
|
@@ -1,35 +1,48 @@
|
|
|
1
1
|
// The contents of this file is identical between the different exports:
|
|
2
2
|
// `/node`, `/browser`, etc.
|
|
3
3
|
|
|
4
|
-
import { Input } from './input.d.js'
|
|
4
|
+
import type { Input } from './input.d.js'
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
SheetData
|
|
8
|
-
|
|
9
|
-
ReadFileResult
|
|
10
|
-
} from '../types/types.d.js';
|
|
6
|
+
import type {
|
|
7
|
+
SheetData
|
|
8
|
+
} from '../types/SheetData.d.js'
|
|
11
9
|
|
|
12
|
-
import {
|
|
10
|
+
import type {
|
|
11
|
+
Sheet
|
|
12
|
+
} from '../types/Sheet.d.js'
|
|
13
|
+
|
|
14
|
+
import type {
|
|
15
|
+
Options
|
|
16
|
+
} from '../types/Options.d.js'
|
|
17
|
+
|
|
18
|
+
import type {
|
|
19
|
+
OptionsWithSchema
|
|
20
|
+
} from '../types/OptionsWithSchema.d.js'
|
|
21
|
+
|
|
22
|
+
import type {
|
|
13
23
|
ParseSheetDataOptions,
|
|
14
24
|
ParseSheetDataResult
|
|
15
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
25
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
16
26
|
|
|
17
|
-
import {
|
|
27
|
+
import type {
|
|
18
28
|
Schema
|
|
19
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
29
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
20
30
|
|
|
21
|
-
import {
|
|
31
|
+
import type {
|
|
22
32
|
ParseSheetDataError
|
|
23
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
33
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
24
34
|
|
|
25
|
-
export {
|
|
35
|
+
export type {
|
|
26
36
|
CellValue,
|
|
27
37
|
Row,
|
|
28
|
-
SheetData
|
|
38
|
+
SheetData
|
|
39
|
+
} from '../types/SheetData.d.js'
|
|
40
|
+
|
|
41
|
+
export type {
|
|
29
42
|
Sheet
|
|
30
|
-
} from '../types/
|
|
43
|
+
} from '../types/Sheet.d.js'
|
|
31
44
|
|
|
32
|
-
export {
|
|
45
|
+
export type {
|
|
33
46
|
ParseSheetDataCustomType,
|
|
34
47
|
// Base `type`s when parsing data.
|
|
35
48
|
StringType as String,
|
|
@@ -40,45 +53,55 @@ export {
|
|
|
40
53
|
Integer,
|
|
41
54
|
Email,
|
|
42
55
|
URL
|
|
43
|
-
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
56
|
+
} from '../types/parseSheetData/parseSheetDataValueType.d.js'
|
|
44
57
|
|
|
45
|
-
export {
|
|
58
|
+
export type {
|
|
46
59
|
ParseSheetDataCustomTypeErrorMessage,
|
|
47
60
|
ParseSheetDataCustomTypeErrorReason,
|
|
48
61
|
ParseSheetDataError,
|
|
49
62
|
ParseSheetDataValueRequiredError
|
|
50
|
-
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
63
|
+
} from '../types/parseSheetData/parseSheetDataError.d.js'
|
|
51
64
|
|
|
52
|
-
export {
|
|
65
|
+
export type {
|
|
53
66
|
ParseSheetDataResult
|
|
54
|
-
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
67
|
+
} from '../types/parseSheetData/parseSheetData.d.js'
|
|
55
68
|
|
|
56
|
-
export {
|
|
69
|
+
export type {
|
|
57
70
|
Schema
|
|
58
|
-
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
71
|
+
} from '../types/parseSheetData/parseSheetDataSchema.d.js'
|
|
59
72
|
|
|
60
73
|
export default function readXlsxFile<ParsedNumber = number>(
|
|
61
74
|
input: Input,
|
|
62
|
-
options?:
|
|
63
|
-
): Promise<
|
|
75
|
+
options?: Options<ParsedNumber>
|
|
76
|
+
): Promise<Sheet<ParsedNumber>[]>;
|
|
64
77
|
|
|
65
78
|
export function readSheet<ParsedNumber = number>(
|
|
66
79
|
input: Input,
|
|
67
80
|
sheet?: number | string,
|
|
68
|
-
options?:
|
|
81
|
+
options?: Options<ParsedNumber>
|
|
69
82
|
): Promise<SheetData<ParsedNumber>>;
|
|
70
83
|
|
|
71
84
|
export function readSheet<ParsedNumber = number>(
|
|
72
85
|
input: Input,
|
|
73
|
-
options?:
|
|
86
|
+
options?: Options<ParsedNumber>
|
|
74
87
|
): Promise<SheetData<ParsedNumber>>;
|
|
75
88
|
|
|
89
|
+
export function readSheet<
|
|
90
|
+
Object extends object,
|
|
91
|
+
ColumnTitle extends string = string,
|
|
92
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>,
|
|
93
|
+
ParsedNumber = number
|
|
94
|
+
>(
|
|
95
|
+
input: Input,
|
|
96
|
+
options: OptionsWithSchema<Object, ColumnTitle, ParsedNumber>
|
|
97
|
+
): Promise<ParseSheetDataResult<Object, ColumnTitle, Error>>;
|
|
98
|
+
|
|
76
99
|
export function parseSheetData<
|
|
77
100
|
Object extends object,
|
|
78
|
-
ColumnTitle extends string,
|
|
79
|
-
Error extends ParseSheetDataError
|
|
101
|
+
ColumnTitle extends string = string,
|
|
102
|
+
Error extends ParseSheetDataError = ParseSheetDataError<ColumnTitle>
|
|
80
103
|
>(
|
|
81
104
|
data: SheetData,
|
|
82
105
|
schema: Schema<Object, ColumnTitle>,
|
|
83
106
|
options?: ParseSheetDataOptions
|
|
84
|
-
): ParseSheetDataResult<Object, Error>;
|
|
107
|
+
): ParseSheetDataResult<Object, ColumnTitle, Error>;
|
package/types/types.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export type CellValue<ParsedNumber = number> =
|
|
2
|
-
| string
|
|
3
|
-
| ParsedNumber
|
|
4
|
-
| boolean
|
|
5
|
-
| typeof Date
|
|
6
|
-
|
|
7
|
-
export type Row<ParsedNumber = number> = (CellValue<ParsedNumber> | null)[]
|
|
8
|
-
|
|
9
|
-
export type SheetData<ParsedNumber = number> = Row<ParsedNumber>[]
|
|
10
|
-
|
|
11
|
-
export type Sheet<ParsedNumber = number> = {
|
|
12
|
-
sheet: string;
|
|
13
|
-
data: SheetData<ParsedNumber>;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export type ReadFileResult<ParsedNumber = number> = Sheet<ParsedNumber>[]
|
|
17
|
-
|
|
18
|
-
export interface ReadOptions<ParsedNumber = number> {
|
|
19
|
-
trim?: boolean;
|
|
20
|
-
parseNumber?: (string: string) => ParsedNumber;
|
|
21
|
-
dateFormat?: string;
|
|
22
|
-
}
|