spliterator 6.0.1 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -0
- package/out/index.d.ts +26 -23
- package/out/index.d.ts.map +1 -1
- package/out/index.js +26 -23
- package/out/index.js.map +1 -1
- package/out/lib/AsyncSpliterator.d.ts.map +1 -1
- package/out/lib/AsyncSpliterator.js +28 -0
- package/out/lib/AsyncSpliterator.js.map +1 -1
- package/out/lib/CSVSpliterator.d.ts +8 -18
- package/out/lib/CSVSpliterator.d.ts.map +1 -1
- package/out/lib/CSVSpliterator.js +4 -47
- package/out/lib/CSVSpliterator.js.map +1 -1
- package/out/lib/CharacterSequence.d.ts +16 -1
- package/out/lib/CharacterSequence.d.ts.map +1 -1
- package/out/lib/CharacterSequence.js +37 -0
- package/out/lib/CharacterSequence.js.map +1 -1
- package/out/lib/XLSXSpliterator.d.ts +143 -0
- package/out/lib/XLSXSpliterator.d.ts.map +1 -0
- package/out/lib/XLSXSpliterator.js +161 -0
- package/out/lib/XLSXSpliterator.js.map +1 -0
- package/out/lib/core/AsyncSpliterator.d.ts +227 -0
- package/out/lib/core/AsyncSpliterator.d.ts.map +1 -0
- package/out/lib/core/AsyncSpliterator.js +510 -0
- package/out/lib/core/AsyncSpliterator.js.map +1 -0
- package/out/lib/core/BufferController.d.ts +77 -0
- package/out/lib/core/BufferController.d.ts.map +1 -0
- package/out/lib/core/BufferController.js +118 -0
- package/out/lib/core/BufferController.js.map +1 -0
- package/out/lib/core/CharacterSequence.d.ts +72 -0
- package/out/lib/core/CharacterSequence.d.ts.map +1 -0
- package/out/lib/core/CharacterSequence.js +347 -0
- package/out/lib/core/CharacterSequence.js.map +1 -0
- package/out/lib/core/CompositeDataView.d.ts +111 -0
- package/out/lib/core/CompositeDataView.d.ts.map +1 -0
- package/out/lib/core/CompositeDataView.js +241 -0
- package/out/lib/core/CompositeDataView.js.map +1 -0
- package/out/lib/core/IndexQueue.d.ts +48 -0
- package/out/lib/core/IndexQueue.d.ts.map +1 -0
- package/out/lib/core/IndexQueue.js +111 -0
- package/out/lib/core/IndexQueue.js.map +1 -0
- package/out/lib/core/SlidingWindow.d.ts +47 -0
- package/out/lib/core/SlidingWindow.d.ts.map +1 -0
- package/out/lib/core/SlidingWindow.js +63 -0
- package/out/lib/core/SlidingWindow.js.map +1 -0
- package/out/lib/core/Spliterator.d.ts +96 -0
- package/out/lib/core/Spliterator.d.ts.map +1 -0
- package/out/lib/core/Spliterator.js +330 -0
- package/out/lib/core/Spliterator.js.map +1 -0
- package/out/lib/core/wasm_base64.d.ts +19 -0
- package/out/lib/core/wasm_base64.d.ts.map +1 -0
- package/out/lib/core/wasm_base64.js +19 -0
- package/out/lib/core/wasm_base64.js.map +1 -0
- package/out/lib/core/wasm_module.d.ts +57 -0
- package/out/lib/core/wasm_module.d.ts.map +1 -0
- package/out/lib/core/wasm_module.js +34 -0
- package/out/lib/core/wasm_module.js.map +1 -0
- package/out/lib/formats/CSVSpliterator.d.ts +131 -0
- package/out/lib/formats/CSVSpliterator.d.ts.map +1 -0
- package/out/lib/formats/CSVSpliterator.js +172 -0
- package/out/lib/formats/CSVSpliterator.js.map +1 -0
- package/out/lib/formats/JSONSpliterator.d.ts +44 -0
- package/out/lib/formats/JSONSpliterator.d.ts.map +1 -0
- package/out/lib/formats/JSONSpliterator.js +77 -0
- package/out/lib/formats/JSONSpliterator.js.map +1 -0
- package/out/lib/formats/PSVSpliterator.d.ts +21 -0
- package/out/lib/formats/PSVSpliterator.d.ts.map +1 -0
- package/out/lib/formats/PSVSpliterator.js +22 -0
- package/out/lib/formats/PSVSpliterator.js.map +1 -0
- package/out/lib/formats/TSVSpliterator.d.ts +21 -0
- package/out/lib/formats/TSVSpliterator.d.ts.map +1 -0
- package/out/lib/formats/TSVSpliterator.js +22 -0
- package/out/lib/formats/TSVSpliterator.js.map +1 -0
- package/out/lib/formats/TextSpliterator.d.ts +53 -0
- package/out/lib/formats/TextSpliterator.d.ts.map +1 -0
- package/out/lib/formats/TextSpliterator.js +67 -0
- package/out/lib/formats/TextSpliterator.js.map +1 -0
- package/out/lib/formats/XLSXSpliterator.d.ts +143 -0
- package/out/lib/formats/XLSXSpliterator.d.ts.map +1 -0
- package/out/lib/formats/XLSXSpliterator.js +161 -0
- package/out/lib/formats/XLSXSpliterator.js.map +1 -0
- package/out/lib/formats/casing.d.ts +27 -0
- package/out/lib/formats/casing.d.ts.map +1 -0
- package/out/lib/formats/casing.js +68 -0
- package/out/lib/formats/casing.js.map +1 -0
- package/out/lib/formats/row-emitters.d.ts +35 -0
- package/out/lib/formats/row-emitters.d.ts.map +1 -0
- package/out/lib/formats/row-emitters.js +50 -0
- package/out/lib/formats/row-emitters.js.map +1 -0
- package/out/lib/internal/shared.d.ts +155 -0
- package/out/lib/internal/shared.d.ts.map +1 -0
- package/out/lib/internal/shared.js +41 -0
- package/out/lib/internal/shared.js.map +1 -0
- package/out/lib/internal/utils.d.ts +37 -0
- package/out/lib/internal/utils.d.ts.map +1 -0
- package/out/lib/internal/utils.js +39 -0
- package/out/lib/internal/utils.js.map +1 -0
- package/out/lib/io/adaptive-source.d.ts +39 -0
- package/out/lib/io/adaptive-source.d.ts.map +1 -0
- package/out/lib/io/adaptive-source.js +95 -0
- package/out/lib/io/adaptive-source.js.map +1 -0
- package/out/lib/io/writer.d.ts +45 -0
- package/out/lib/io/writer.d.ts.map +1 -0
- package/out/lib/io/writer.js +57 -0
- package/out/lib/io/writer.js.map +1 -0
- package/out/lib/iterators/AsyncSequence.d.ts +180 -0
- package/out/lib/iterators/AsyncSequence.d.ts.map +1 -0
- package/out/lib/iterators/AsyncSequence.js +432 -0
- package/out/lib/iterators/AsyncSequence.js.map +1 -0
- package/out/lib/iterators/chunks.d.ts +20 -0
- package/out/lib/iterators/chunks.d.ts.map +1 -0
- package/out/lib/iterators/chunks.js +36 -0
- package/out/lib/iterators/chunks.js.map +1 -0
- package/out/lib/iterators/pivot.d.ts +30 -0
- package/out/lib/iterators/pivot.d.ts.map +1 -0
- package/out/lib/iterators/pivot.js +47 -0
- package/out/lib/iterators/pivot.js.map +1 -0
- package/out/lib/iterators/zip.d.ts +33 -0
- package/out/lib/iterators/zip.d.ts.map +1 -0
- package/out/lib/iterators/zip.js +59 -0
- package/out/lib/iterators/zip.js.map +1 -0
- package/out/lib/parallel/merge-async-iterators.d.ts +12 -0
- package/out/lib/parallel/merge-async-iterators.d.ts.map +1 -0
- package/out/lib/parallel/merge-async-iterators.js +39 -0
- package/out/lib/parallel/merge-async-iterators.js.map +1 -0
- package/out/lib/parallel/parallel-map-runtime.d.ts +22 -0
- package/out/lib/parallel/parallel-map-runtime.d.ts.map +1 -0
- package/out/lib/parallel/parallel-map-runtime.js +60 -0
- package/out/lib/parallel/parallel-map-runtime.js.map +1 -0
- package/out/lib/parallel/parallel-map-worker-entry.d.ts +11 -0
- package/out/lib/parallel/parallel-map-worker-entry.d.ts.map +1 -0
- package/out/lib/parallel/parallel-map-worker-entry.js +41 -0
- package/out/lib/parallel/parallel-map-worker-entry.js.map +1 -0
- package/out/lib/parallel/parallel-map-workers.d.ts +57 -0
- package/out/lib/parallel/parallel-map-workers.d.ts.map +1 -0
- package/out/lib/parallel/parallel-map-workers.js +82 -0
- package/out/lib/parallel/parallel-map-workers.js.map +1 -0
- package/out/lib/parallel/parallel-map.d.ts +28 -0
- package/out/lib/parallel/parallel-map.d.ts.map +1 -0
- package/out/lib/parallel/parallel-map.js +30 -0
- package/out/lib/parallel/parallel-map.js.map +1 -0
- package/out/lib/parallel/segment-runtime.d.ts +27 -0
- package/out/lib/parallel/segment-runtime.d.ts.map +1 -0
- package/out/lib/parallel/segment-runtime.js +41 -0
- package/out/lib/parallel/segment-runtime.js.map +1 -0
- package/out/lib/parallel/segment-worker-entry.d.ts +10 -0
- package/out/lib/parallel/segment-worker-entry.d.ts.map +1 -0
- package/out/lib/parallel/segment-worker-entry.js +59 -0
- package/out/lib/parallel/segment-worker-entry.js.map +1 -0
- package/out/lib/parallel/segment-workers.d.ts +56 -0
- package/out/lib/parallel/segment-workers.d.ts.map +1 -0
- package/out/lib/parallel/segment-workers.js +110 -0
- package/out/lib/parallel/segment-workers.js.map +1 -0
- package/out/lib/parallel/segments.d.ts +31 -0
- package/out/lib/parallel/segments.d.ts.map +1 -0
- package/out/lib/parallel/segments.js +52 -0
- package/out/lib/parallel/segments.js.map +1 -0
- package/out/lib/row-emitters.d.ts +35 -0
- package/out/lib/row-emitters.d.ts.map +1 -0
- package/out/lib/row-emitters.js +50 -0
- package/out/lib/row-emitters.js.map +1 -0
- package/out/lib/wasm_base64.d.ts +4 -1
- package/out/lib/wasm_base64.d.ts.map +1 -1
- package/out/lib/wasm_base64.js +4 -1
- package/out/lib/wasm_base64.js.map +1 -1
- package/out/lib/wasm_module.d.ts +15 -0
- package/out/lib/wasm_module.d.ts.map +1 -1
- package/out/lib/wasm_module.js +2 -1
- package/out/lib/wasm_module.js.map +1 -1
- package/out/node/cli/commands/csv.d.ts +113 -0
- package/out/node/cli/commands/csv.d.ts.map +1 -1
- package/out/node/cli/commands/csv.js +34 -36
- package/out/node/cli/commands/csv.js.map +1 -1
- package/out/node/cli/commands/iterate.d.ts +92 -0
- package/out/node/cli/commands/iterate.d.ts.map +1 -1
- package/out/node/cli/commands/iterate.js +26 -28
- package/out/node/cli/commands/iterate.js.map +1 -1
- package/out/node/cli/commands/parallel.d.ts +102 -0
- package/out/node/cli/commands/parallel.d.ts.map +1 -0
- package/out/node/cli/commands/parallel.js +426 -0
- package/out/node/cli/commands/parallel.js.map +1 -0
- package/out/node/cli/index.js +5 -0
- package/out/node/cli/index.js.map +1 -1
- package/out/node/cli/spec.d.ts +51 -0
- package/out/node/cli/spec.d.ts.map +1 -0
- package/out/node/cli/spec.js +78 -0
- package/out/node/cli/spec.js.map +1 -0
- package/out/node/cli/utils.d.ts +36 -18
- package/out/node/cli/utils.d.ts.map +1 -1
- package/out/node/cli/utils.js +48 -39
- package/out/node/cli/utils.js.map +1 -1
- package/out/node/fs/index.d.ts +1 -1
- package/out/node/fs/index.d.ts.map +1 -1
- package/out/node/fs/index.js +1 -1
- package/out/node/fs/index.js.map +1 -1
- package/package.json +18 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CharacterSequence.js","sourceRoot":"","sources":["../../lib/CharacterSequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license MIT
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*/
|
|
6
|
+
import { AsyncSequence } from "./AsyncSequence.js";
|
|
7
|
+
import { type RowEmitter, type RowOutputMode, type RowTransformer, type RowTransformerEntry, type RowTransformerRecord, type RowTuple } from "./row-emitters.js";
|
|
8
|
+
import type { AsyncChunkIterator } from "./shared.js";
|
|
9
|
+
/**
|
|
10
|
+
* A cell value as parsed from an XLSX sheet. Unlike CSV columns, XLSX cells arrive typed — numbers, booleans, and dates
|
|
11
|
+
* are real values, not strings — and an empty cell is `null`.
|
|
12
|
+
*/
|
|
13
|
+
export type XLSXCellValue = string | number | boolean | Date | null;
|
|
14
|
+
export type XLSXTransformer<T = unknown> = RowTransformer<XLSXCellValue, T>;
|
|
15
|
+
export type XLSXTransformerEntry<T = unknown> = RowTransformerEntry<XLSXCellValue, T>;
|
|
16
|
+
export type XLSXTransformerRecord = RowTransformerRecord<XLSXCellValue>;
|
|
17
|
+
export type XLSXSpliteratorEmittedRecord<V = XLSXCellValue> = Record<string, V>;
|
|
18
|
+
/**
|
|
19
|
+
* A readable XLSX source: a file path, a whole workbook in memory, or an asynchronous byte stream.
|
|
20
|
+
*/
|
|
21
|
+
export type XLSXSource = string | URL | Uint8Array | AsyncChunkIterator;
|
|
22
|
+
/**
|
|
23
|
+
* A row accepted by {@linkcode XLSXSpliterator.write}: either an array of cells, or a record whose keys become the
|
|
24
|
+
* header row. `undefined` cells are written as empty (`null`) cells, so records read under `noUncheckedIndexedAccess`
|
|
25
|
+
* pass through without ceremony.
|
|
26
|
+
*/
|
|
27
|
+
export type XLSXWritableRow = readonly (XLSXCellValue | undefined)[] | Readonly<Record<string, XLSXCellValue | undefined>>;
|
|
28
|
+
export declare const XLSXSpliteratorEmitters: Record<RowOutputMode, RowEmitter<XLSXCellValue> | null>;
|
|
29
|
+
export interface XLSXSpliteratorInit {
|
|
30
|
+
/**
|
|
31
|
+
* The sheet to read, as a 1-based sheet number or a sheet name.
|
|
32
|
+
*
|
|
33
|
+
* @default 1
|
|
34
|
+
*/
|
|
35
|
+
sheet?: number | string;
|
|
36
|
+
/**
|
|
37
|
+
* The mode determines the shape of the data emitted by the generator.
|
|
38
|
+
*
|
|
39
|
+
* - `object` will emit each row as an object with the header names as keys.
|
|
40
|
+
* - `array` will emit each row as an array.
|
|
41
|
+
* - `entries` will emit each row as an array of key-value pairs.
|
|
42
|
+
*
|
|
43
|
+
* @default "array"
|
|
44
|
+
*/
|
|
45
|
+
mode?: RowOutputMode;
|
|
46
|
+
/**
|
|
47
|
+
* Whether to treat the first row as a header.
|
|
48
|
+
*
|
|
49
|
+
* @default true
|
|
50
|
+
*/
|
|
51
|
+
header?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Whether to normalize the keys of the header row into `snake_case`, matching {@linkcode CSVSpliterator}.
|
|
54
|
+
*
|
|
55
|
+
* @default `mode !== "array"`
|
|
56
|
+
*/
|
|
57
|
+
normalizeKeys?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Per-column transformers. Unlike CSV transformers, these receive typed cell values ({@linkcode XLSXCellValue}), not
|
|
60
|
+
* strings.
|
|
61
|
+
*/
|
|
62
|
+
transformers?: Iterable<XLSXTransformerEntry> | XLSXTransformerRecord;
|
|
63
|
+
/**
|
|
64
|
+
* The number of data rows to skip before yielding.
|
|
65
|
+
*/
|
|
66
|
+
drop?: number;
|
|
67
|
+
/**
|
|
68
|
+
* The maximum number of rows to yield.
|
|
69
|
+
*/
|
|
70
|
+
take?: number;
|
|
71
|
+
}
|
|
72
|
+
export interface XLSXWriteInit {
|
|
73
|
+
/**
|
|
74
|
+
* The name of the written sheet.
|
|
75
|
+
*/
|
|
76
|
+
sheet?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Whether to emit a header row.
|
|
79
|
+
*
|
|
80
|
+
* @default true for record rows — the header is derived from the first record's keys. Array rows have no keys, so
|
|
81
|
+
* this defaults to false and enabling it is a `TypeError`.
|
|
82
|
+
*/
|
|
83
|
+
header?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* A handle over a pending XLSX serialization. The source rows are materialized on the first invocation of any method —
|
|
87
|
+
* XLSX is a ZIP archive, so the workbook must be complete before any bytes can be produced.
|
|
88
|
+
*/
|
|
89
|
+
export interface XLSXWriteHandle {
|
|
90
|
+
toFile(path: string): Promise<void>;
|
|
91
|
+
toBuffer(): Promise<Buffer>;
|
|
92
|
+
toStream(writable?: NodeJS.WritableStream): Promise<unknown>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A static class spliterator for XLSX workbooks, reading through the optional peer dependency `read-excel-file` and
|
|
96
|
+
* writing through `write-excel-file`.
|
|
97
|
+
*
|
|
98
|
+
* **Memory:** XLSX is a ZIP archive of XML documents — shared strings live in a separate archive entry, and the central
|
|
99
|
+
* directory sits at the end of the file. Both reading and writing therefore materialize the whole workbook, unlike the
|
|
100
|
+
* byte-level spliterators. Prefer CSV for sources large enough that bounded memory matters.
|
|
101
|
+
*
|
|
102
|
+
* @see {@linkcode XLSXSpliterator.fromAsync} for reading.
|
|
103
|
+
* @see {@linkcode XLSXSpliterator.write} for writing.
|
|
104
|
+
*/
|
|
105
|
+
export declare abstract class XLSXSpliterator {
|
|
106
|
+
constructor();
|
|
107
|
+
/**
|
|
108
|
+
* XLSX cannot be parsed synchronously — decompression and XML parsing are asynchronous in the underlying reader.
|
|
109
|
+
*
|
|
110
|
+
* @throws {TypeError} Always. Use {@linkcode XLSXSpliterator.fromAsync}.
|
|
111
|
+
*/
|
|
112
|
+
static from(_source?: unknown, _init?: unknown): never;
|
|
113
|
+
/**
|
|
114
|
+
* @yields Each row as an object with the header names as keys.
|
|
115
|
+
*/
|
|
116
|
+
static fromAsync<T extends XLSXSpliteratorEmittedRecord = XLSXSpliteratorEmittedRecord>(source: XLSXSource, options?: XLSXSpliteratorInit & {
|
|
117
|
+
mode: "object";
|
|
118
|
+
}): AsyncSequence<T>;
|
|
119
|
+
/**
|
|
120
|
+
* @yields Each row as a 3-tuple [key, value, idx].
|
|
121
|
+
*/
|
|
122
|
+
static fromAsync<T extends RowTuple<unknown>[] = RowTuple<XLSXCellValue>[]>(source: XLSXSource, options?: XLSXSpliteratorInit & {
|
|
123
|
+
mode: "entries";
|
|
124
|
+
}): AsyncSequence<T>;
|
|
125
|
+
/**
|
|
126
|
+
* @yields Each row as an array of typed cells.
|
|
127
|
+
*/
|
|
128
|
+
static fromAsync<T extends XLSXCellValue[] = XLSXCellValue[]>(source: XLSXSource, options?: XLSXSpliteratorInit & {
|
|
129
|
+
mode?: "array";
|
|
130
|
+
}): AsyncSequence<T>;
|
|
131
|
+
/**
|
|
132
|
+
* Serialize rows into an XLSX workbook through the optional peer dependency `write-excel-file`.
|
|
133
|
+
*
|
|
134
|
+
* Rows may be arrays of cells, or records — record keys become the header row, read in the first record's key order.
|
|
135
|
+
* The source is materialized on the first invocation of a handle method: the workbook must be complete before any
|
|
136
|
+
* bytes can be produced.
|
|
137
|
+
*
|
|
138
|
+
* @param source The rows to write, as any iterable or async iterable.
|
|
139
|
+
* @param init Options for the writer.
|
|
140
|
+
*/
|
|
141
|
+
static write(source: Iterable<XLSXWritableRow> | AsyncIterable<XLSXWritableRow>, init?: XLSXWriteInit): XLSXWriteHandle;
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=XLSXSpliterator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XLSXSpliterator.d.ts","sourceRoot":"","sources":["../../lib/XLSXSpliterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license MIT
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*/
|
|
6
|
+
import { AsyncSequence } from "./AsyncSequence.js";
|
|
7
|
+
import { normalizeColumnNames } from "./casing.js";
|
|
8
|
+
import { bindTransformers, createRowEmitters, } from "./row-emitters.js";
|
|
9
|
+
export const XLSXSpliteratorEmitters = createRowEmitters(null);
|
|
10
|
+
/**
|
|
11
|
+
* Wrap the optional peer dependency import so a missing module names the package to install.
|
|
12
|
+
*/
|
|
13
|
+
async function importVendor(packageName, importer) {
|
|
14
|
+
try {
|
|
15
|
+
return await importer();
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
throw new Error(`XLSXSpliterator requires the optional peer dependency "${packageName}". Install it to use this API.`, { cause: error });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Adapt a {@linkcode XLSXSource} to what `read-excel-file/node` accepts: a path, a `Buffer`, or a Node stream.
|
|
23
|
+
*/
|
|
24
|
+
async function resolveVendorInput(source) {
|
|
25
|
+
if (typeof source === "string")
|
|
26
|
+
return source;
|
|
27
|
+
if (source instanceof URL) {
|
|
28
|
+
const { fileURLToPath } = await import("node:url");
|
|
29
|
+
return fileURLToPath(source);
|
|
30
|
+
}
|
|
31
|
+
if (source instanceof Uint8Array) {
|
|
32
|
+
// Respect the byte offset: small `Buffer`s share a pool, so offset 0 of the
|
|
33
|
+
// underlying `ArrayBuffer` may be another allocation's data.
|
|
34
|
+
return Buffer.from(source.buffer, source.byteOffset, source.byteLength);
|
|
35
|
+
}
|
|
36
|
+
const { Readable } = await import("node:stream");
|
|
37
|
+
return Readable.from(source);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A static class spliterator for XLSX workbooks, reading through the optional peer dependency `read-excel-file` and
|
|
41
|
+
* writing through `write-excel-file`.
|
|
42
|
+
*
|
|
43
|
+
* **Memory:** XLSX is a ZIP archive of XML documents — shared strings live in a separate archive entry, and the central
|
|
44
|
+
* directory sits at the end of the file. Both reading and writing therefore materialize the whole workbook, unlike the
|
|
45
|
+
* byte-level spliterators. Prefer CSV for sources large enough that bounded memory matters.
|
|
46
|
+
*
|
|
47
|
+
* @see {@linkcode XLSXSpliterator.fromAsync} for reading.
|
|
48
|
+
* @see {@linkcode XLSXSpliterator.write} for writing.
|
|
49
|
+
*/
|
|
50
|
+
export class XLSXSpliterator {
|
|
51
|
+
constructor() {
|
|
52
|
+
throw new TypeError("Static class cannot be instantiated. Did you mean `XLSXSpliterator.fromAsync`?");
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* XLSX cannot be parsed synchronously — decompression and XML parsing are asynchronous in the underlying reader.
|
|
56
|
+
*
|
|
57
|
+
* @throws {TypeError} Always. Use {@linkcode XLSXSpliterator.fromAsync}.
|
|
58
|
+
*/
|
|
59
|
+
static from(_source, _init) {
|
|
60
|
+
throw new TypeError("XLSX cannot be parsed synchronously. Did you mean `XLSXSpliterator.fromAsync`?");
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Given an XLSX workbook, yield each row of a sheet, shaped according to the `mode` option.
|
|
64
|
+
*
|
|
65
|
+
* Note that unlike the byte-level spliterators, the whole sheet is materialized before the first row is yielded.
|
|
66
|
+
*
|
|
67
|
+
* @param source The workbook to read.
|
|
68
|
+
* @param init Options for the spliterator.
|
|
69
|
+
*
|
|
70
|
+
* @yields Each row, shaped according to the `mode` option.
|
|
71
|
+
*/
|
|
72
|
+
static fromAsync(source, init = {}) {
|
|
73
|
+
const {
|
|
74
|
+
// ---
|
|
75
|
+
sheet = 1, header = true, mode = "array", transformers: transformersInput = [], normalizeKeys = mode !== "array", take = Infinity, drop = 0, } = init;
|
|
76
|
+
const emitter = XLSXSpliteratorEmitters[mode];
|
|
77
|
+
// Populated by the header pass below before the first row op runs, matching `CSVSpliterator.fromAsync`.
|
|
78
|
+
let transformers = [];
|
|
79
|
+
const openRows = async () => {
|
|
80
|
+
const { readSheet } = await importVendor("read-excel-file", () => import("read-excel-file/node"));
|
|
81
|
+
const input = await resolveVendorInput(source);
|
|
82
|
+
const rows = (await readSheet(input, sheet));
|
|
83
|
+
if (!header)
|
|
84
|
+
return rows;
|
|
85
|
+
const headerRow = rows[0];
|
|
86
|
+
if (!headerRow)
|
|
87
|
+
return [];
|
|
88
|
+
// A header row may legally contain non-string cells — stringify before normalization.
|
|
89
|
+
const columns = headerRow.map((cell) => String(cell ?? ""));
|
|
90
|
+
const headers = normalizeKeys ? normalizeColumnNames(columns) : columns;
|
|
91
|
+
transformers = bindTransformers(headers, transformersInput);
|
|
92
|
+
return rows.slice(1);
|
|
93
|
+
};
|
|
94
|
+
let sequence = AsyncSequence.from(openRows).map((row) => {
|
|
95
|
+
return emitter ? emitter(row, transformers) : row;
|
|
96
|
+
});
|
|
97
|
+
if (drop > 0) {
|
|
98
|
+
sequence = sequence.drop(drop);
|
|
99
|
+
}
|
|
100
|
+
if (Number.isFinite(take)) {
|
|
101
|
+
sequence = sequence.take(take);
|
|
102
|
+
}
|
|
103
|
+
return sequence;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Serialize rows into an XLSX workbook through the optional peer dependency `write-excel-file`.
|
|
107
|
+
*
|
|
108
|
+
* Rows may be arrays of cells, or records — record keys become the header row, read in the first record's key order.
|
|
109
|
+
* The source is materialized on the first invocation of a handle method: the workbook must be complete before any
|
|
110
|
+
* bytes can be produced.
|
|
111
|
+
*
|
|
112
|
+
* @param source The rows to write, as any iterable or async iterable.
|
|
113
|
+
* @param init Options for the writer.
|
|
114
|
+
*/
|
|
115
|
+
static write(source, init = {}) {
|
|
116
|
+
const open = async () => {
|
|
117
|
+
const { default: writeXlsxFile } = await importVendor("write-excel-file", () => import("write-excel-file/node"));
|
|
118
|
+
const data = await materializeSheetData(source, init);
|
|
119
|
+
return writeXlsxFile(data, init.sheet === undefined ? undefined : { sheet: init.sheet });
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
async toFile(path) {
|
|
123
|
+
await (await open()).toFile(path);
|
|
124
|
+
},
|
|
125
|
+
async toBuffer() {
|
|
126
|
+
return (await open()).toBuffer();
|
|
127
|
+
},
|
|
128
|
+
async toStream(writable) {
|
|
129
|
+
return (await open()).toStream(writable);
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Materialize writable rows into `write-excel-file`'s sheet data: bare cell values, with a header row derived from
|
|
136
|
+
* record keys when the rows are records.
|
|
137
|
+
*/
|
|
138
|
+
async function materializeSheetData(source, init) {
|
|
139
|
+
const data = [];
|
|
140
|
+
let keys;
|
|
141
|
+
for await (const row of source) {
|
|
142
|
+
if (Array.isArray(row)) {
|
|
143
|
+
if (init.header) {
|
|
144
|
+
throw new TypeError("`header` requires record rows — array rows have no keys to derive a header from.");
|
|
145
|
+
}
|
|
146
|
+
data.push(row);
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
const record = row;
|
|
150
|
+
if (!keys) {
|
|
151
|
+
// The header is derived from the first record's keys; later records are read in that order.
|
|
152
|
+
keys = Object.keys(record);
|
|
153
|
+
if (init.header !== false) {
|
|
154
|
+
data.push(keys);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
data.push(keys.map((key) => record[key] ?? null));
|
|
158
|
+
}
|
|
159
|
+
return data;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=XLSXSpliterator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XLSXSpliterator.js","sourceRoot":"","sources":["../../lib/XLSXSpliterator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @copyright Sister Software
|
|
3
|
+
* @license MIT
|
|
4
|
+
* @author Teffen Ellis, et al.
|
|
5
|
+
*/
|
|
6
|
+
import { ReadableStream, type ReadableWritablePair, type StreamPipeOptions } from "stream/web";
|
|
7
|
+
import { type CharacterSequenceInput } from "./CharacterSequence.js";
|
|
8
|
+
import type { AsyncChunkIterator, AsyncDataResource, ByteRange } from "../internal/shared.js";
|
|
9
|
+
import { type AsManyWorkersOptions } from "../parallel/segment-workers.js";
|
|
10
|
+
import { type SegmentOptions } from "../parallel/segments.js";
|
|
11
|
+
/**
|
|
12
|
+
* Initialization options for creating a spliterator.
|
|
13
|
+
*/
|
|
14
|
+
export interface SpliteratorInit {
|
|
15
|
+
/**
|
|
16
|
+
* The character to delimit by. Typically a newline or comma.
|
|
17
|
+
*
|
|
18
|
+
* @default Delimiters.LineFeed
|
|
19
|
+
*/
|
|
20
|
+
delimiter?: CharacterSequenceInput;
|
|
21
|
+
/**
|
|
22
|
+
* The byte offset to start reading from.
|
|
23
|
+
*
|
|
24
|
+
* This is an advanced option that is not typically used.
|
|
25
|
+
*
|
|
26
|
+
* @default 0
|
|
27
|
+
*/
|
|
28
|
+
position?: number;
|
|
29
|
+
/**
|
|
30
|
+
* Whether to drop empty slices, so a run of repeated delimiters yields nothing between them.
|
|
31
|
+
*
|
|
32
|
+
* Setting this to `false` emits those empties and matches the behavior of `String.prototype.split`.
|
|
33
|
+
*
|
|
34
|
+
* @default true
|
|
35
|
+
*/
|
|
36
|
+
skipEmpty?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Count of skipped matches before emitting a data.
|
|
39
|
+
*
|
|
40
|
+
* @default 0
|
|
41
|
+
*/
|
|
42
|
+
drop?: number;
|
|
43
|
+
/**
|
|
44
|
+
* The maximum number of data slices to yield.
|
|
45
|
+
*
|
|
46
|
+
* Useful for limiting the number of emitted slices, i.e. lines in a file.
|
|
47
|
+
*
|
|
48
|
+
* Note that skipped slices are not counted towards the limit.
|
|
49
|
+
*
|
|
50
|
+
* @default Infinity
|
|
51
|
+
*/
|
|
52
|
+
take?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Whether to treat double-quoted regions as opaque: a delimiter inside `"…"` does not split, and the emitted slices
|
|
55
|
+
* keep their quotes verbatim. Quote _stripping_ and `""` unescaping are the consumer's concern —
|
|
56
|
+
* {@linkcode CSVSpliterator} does both when this flag is set.
|
|
57
|
+
*
|
|
58
|
+
* The asynchronous engine requires a single-byte delimiter for this mode (every {@linkcode Delimiters} entry
|
|
59
|
+
* qualifies) — a multi-byte delimiter straddling a chunk boundary cannot be rescanned without re-toggling quote
|
|
60
|
+
* state.
|
|
61
|
+
*
|
|
62
|
+
* @default false
|
|
63
|
+
*/
|
|
64
|
+
enableQuoteHandling?: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Whether to treat a carriage return immediately preceding a delimiter as part of the delimiter — i.e. CRLF
|
|
67
|
+
* normalization when splitting on `\n`, matching `node:readline`'s `crlfDelay: Infinity`. Only a `\r` directly before
|
|
68
|
+
* an actual delimiter match is trimmed; a trailing `\r` at end-of-input is preserved.
|
|
69
|
+
*
|
|
70
|
+
* {@linkcode CSVSpliterator} defaults this to `true` for row splitting (RFC 4180 mandates CRLF row terminators);
|
|
71
|
+
* everywhere else the default is `false`.
|
|
72
|
+
*
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
crlf?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Whether to emit debug information.
|
|
78
|
+
*/
|
|
79
|
+
debug?: boolean;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Initialization options for creating an asynchronous spliterator.
|
|
83
|
+
*/
|
|
84
|
+
export interface AsyncSpliteratorInit extends SpliteratorInit {
|
|
85
|
+
/**
|
|
86
|
+
* The buffer chunk size to read from the file, i.e. the high-water mark for the file read operation.
|
|
87
|
+
*
|
|
88
|
+
* @default BlockSize * 16
|
|
89
|
+
* @minimum The delimiter byte length * 4 or block size of the file system. Whichever is greater.
|
|
90
|
+
* @maximum The byte length of the file.
|
|
91
|
+
*/
|
|
92
|
+
highWaterMark?: number;
|
|
93
|
+
/**
|
|
94
|
+
* Whether to automatically dispose of the source once the iterator is done.
|
|
95
|
+
*
|
|
96
|
+
* @default true
|
|
97
|
+
*/
|
|
98
|
+
autoDispose?: boolean;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* An asynchronous spliterator for reading delimited byte streams.
|
|
102
|
+
*
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { AsyncSpliterator } from "spliterator"
|
|
105
|
+
*
|
|
106
|
+
* const file = await AsyncSpliterator.from("data.csv")
|
|
107
|
+
*
|
|
108
|
+
* for await (const line of file) {
|
|
109
|
+
* console.log(line)
|
|
110
|
+
* }
|
|
111
|
+
* ```
|
|
112
|
+
*
|
|
113
|
+
* @see {@linkcode Spliterator} for the synchronous version.
|
|
114
|
+
*/
|
|
115
|
+
export declare class AsyncSpliterator<R extends Uint8Array | DataView | ArrayBuffer = Uint8Array> implements AsyncIterableIterator<R>, AsyncDisposable {
|
|
116
|
+
#private;
|
|
117
|
+
/**
|
|
118
|
+
* Create a new delimited generator from an asynchronous byte stream.
|
|
119
|
+
*
|
|
120
|
+
* @param source - The data resource to read from.
|
|
121
|
+
* @param init - The initialization options for the generator.
|
|
122
|
+
*
|
|
123
|
+
* @returns A new generator instance, yielding byte ranges.
|
|
124
|
+
*/
|
|
125
|
+
static from(source: AsyncChunkIterator, init?: AsyncSpliteratorInit): AsyncSpliterator;
|
|
126
|
+
/**
|
|
127
|
+
* Create a new delimited generator from a resource such as a file handle or URL.
|
|
128
|
+
*
|
|
129
|
+
* @param source - The data resource to read from.
|
|
130
|
+
* @param init - The initialization options for the generator.
|
|
131
|
+
*
|
|
132
|
+
* @returns A new generator instance, yielding byte ranges.
|
|
133
|
+
*/
|
|
134
|
+
static from(source: AsyncDataResource, init?: AsyncSpliteratorInit): Promise<AsyncSpliterator>;
|
|
135
|
+
/**
|
|
136
|
+
* Create a new delimited generator from a resource such as a file handle, URL, or byte stream.
|
|
137
|
+
*
|
|
138
|
+
* @param source - The data resource to read from.
|
|
139
|
+
* @param init - The initialization options for the generator.
|
|
140
|
+
*
|
|
141
|
+
* @returns A new generator instance, yielding byte ranges.
|
|
142
|
+
*/
|
|
143
|
+
static from(source: AsyncDataResource | AsyncChunkIterator, init?: AsyncSpliteratorInit): AsyncSpliterator | Promise<AsyncSpliterator>;
|
|
144
|
+
/**
|
|
145
|
+
* Dispose of the spliterator, closing the file handle if necessary.
|
|
146
|
+
*/
|
|
147
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Create a new delimited generator from a data resource.
|
|
150
|
+
*/
|
|
151
|
+
static toTransformStream(init: SpliteratorInit): TransformStream<AsyncChunkIterator, Uint8Array>;
|
|
152
|
+
/**
|
|
153
|
+
* Create a new delimited generator from an asynchronous byte stream.
|
|
154
|
+
*
|
|
155
|
+
* @param source - The file to read from.
|
|
156
|
+
* @param init - The initialization options for the generator.
|
|
157
|
+
* @see {@linkcode AsyncSpliterator.from} to create a new generator from a data resource.
|
|
158
|
+
*/
|
|
159
|
+
constructor(source: AsyncChunkIterator, init?: AsyncSpliteratorInit);
|
|
160
|
+
next(): Promise<IteratorResult<R>>;
|
|
161
|
+
/**
|
|
162
|
+
* Collect all the byte ranges from the file.
|
|
163
|
+
*
|
|
164
|
+
* **This method will read the entire file into memory.**
|
|
165
|
+
*/
|
|
166
|
+
toArray(): Promise<R[]>;
|
|
167
|
+
/**
|
|
168
|
+
* Collect all the byte ranges from the file as a string.
|
|
169
|
+
*
|
|
170
|
+
* **This method will read the entire file into memory.**
|
|
171
|
+
*/
|
|
172
|
+
toDecodedArray(decoder?: import("node:util").TextDecoder): Promise<string[]>;
|
|
173
|
+
/**
|
|
174
|
+
* Wraps the spliterator in a readable stream.
|
|
175
|
+
*
|
|
176
|
+
* This is useful for piping the spliterator to other streams.
|
|
177
|
+
*
|
|
178
|
+
* @returns A readable stream of byte ranges.
|
|
179
|
+
*/
|
|
180
|
+
toReadableStream(): ReadableStream<R>;
|
|
181
|
+
/**
|
|
182
|
+
* Pipes the spliterator to a writable stream.
|
|
183
|
+
*
|
|
184
|
+
* ```ts
|
|
185
|
+
* const spliterator = await AsyncSpliterator.from("data.csv")
|
|
186
|
+
*
|
|
187
|
+
* const textStream = spliterator.pipeTo(new TextDecoderStream())
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* @see {@linkcode toReadableStream} to first convert the spliterator to a readable stream.
|
|
191
|
+
*/
|
|
192
|
+
pipeThrough<T>(transform: ReadableWritablePair<T, R>, options?: StreamPipeOptions): ReadableStream<T>;
|
|
193
|
+
/**
|
|
194
|
+
* Iterate over the byte ranges in the file, yielding each range. between delimiters.
|
|
195
|
+
*/
|
|
196
|
+
[Symbol.asyncIterator](): this;
|
|
197
|
+
return(): Promise<IteratorReturnResult<undefined>>;
|
|
198
|
+
/**
|
|
199
|
+
* Compute delimiter-aligned `[start, end)` byte ranges dividing `source` into up to `concurrency` segments. The
|
|
200
|
+
* boundary primitive for parallel parsing — hand each range to a worker (with its own handle). See
|
|
201
|
+
* {@linkcode asManyWorkers} for the turnkey worker version.
|
|
202
|
+
*/
|
|
203
|
+
static segments(source: AsyncDataResource, options: SegmentOptions): Promise<ByteRange[]>;
|
|
204
|
+
/**
|
|
205
|
+
* Split `source` into delimiter-aligned segments and return one {@linkcode AsyncSpliterator} per segment. All share
|
|
206
|
+
* the event loop (no worker threads) — for moderate jobs or to overlap I/O. Returns at most `concurrency` instances.
|
|
207
|
+
*
|
|
208
|
+
* @param source - The data resource to read from.
|
|
209
|
+
* @param options - Delimiter, desired concurrency, and optional probe size.
|
|
210
|
+
*
|
|
211
|
+
* @returns One `AsyncSpliterator` per non-empty segment, possibly fewer than `concurrency`.
|
|
212
|
+
*/
|
|
213
|
+
static asMany(source: AsyncDataResource, options: SegmentOptions): Promise<AsyncSpliterator[]>;
|
|
214
|
+
/**
|
|
215
|
+
* Parse `source` across worker threads. Each worker owns a handle to a delimiter-aligned segment, runs the `worker`
|
|
216
|
+
* handler module per record, and streams results back to the main thread as one merged async iterator — for a
|
|
217
|
+
* single-thread writer. Results interleave across segments.
|
|
218
|
+
*
|
|
219
|
+
* The handler returns a value (structured-cloned back), a `Uint8Array` (transferred zero-copy), or `undefined` (the
|
|
220
|
+
* record is skipped). The handler module's top-level code runs once per worker — load models/handles there.
|
|
221
|
+
*
|
|
222
|
+
* @param source A file path or URL (file handles cannot cross threads → `TypeError` otherwise).
|
|
223
|
+
* @param options Handler module, delimiter, concurrency, and batching/backpressure tuning.
|
|
224
|
+
*/
|
|
225
|
+
static asManyWorkers<R = unknown>(source: AsyncDataResource, options: AsManyWorkersOptions): AsyncIterableIterator<R>;
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=AsyncSpliterator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AsyncSpliterator.d.ts","sourceRoot":"","sources":["../../../lib/core/AsyncSpliterator.ts"],"names":[],"mappings":"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"}
|