web-csv-toolbox 0.0.0-next-20240609055757 → 0.0.0-next-20240609164654
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/dist/cjs/Lexer.cjs +1 -1
- package/dist/cjs/Lexer.cjs.map +1 -1
- package/dist/cjs/LexerTransformer.cjs +1 -1
- package/dist/cjs/LexerTransformer.cjs.map +1 -1
- package/dist/cjs/RecordAssembler.cjs +1 -1
- package/dist/cjs/RecordAssembler.cjs.map +1 -1
- package/dist/cjs/RecordAssemblerTransformer.cjs +1 -1
- package/dist/cjs/RecordAssemblerTransformer.cjs.map +1 -1
- package/dist/cjs/assertCommonOptions.cjs +1 -1
- package/dist/cjs/assertCommonOptions.cjs.map +1 -1
- package/dist/cjs/common/errors.cjs +2 -0
- package/dist/cjs/common/errors.cjs.map +1 -0
- package/dist/cjs/commonParseErrorHandling.cjs +2 -0
- package/dist/cjs/commonParseErrorHandling.cjs.map +1 -0
- package/dist/cjs/getOptionsFromResponse.cjs +1 -1
- package/dist/cjs/getOptionsFromResponse.cjs.map +1 -1
- package/dist/cjs/parseBinaryToArraySync.cjs +1 -1
- package/dist/cjs/parseBinaryToArraySync.cjs.map +1 -1
- package/dist/cjs/parseBinaryToIterableIterator.cjs +1 -1
- package/dist/cjs/parseBinaryToIterableIterator.cjs.map +1 -1
- package/dist/cjs/parseBinaryToStream.cjs +1 -1
- package/dist/cjs/parseBinaryToStream.cjs.map +1 -1
- package/dist/cjs/parseResponse.cjs +1 -1
- package/dist/cjs/parseResponse.cjs.map +1 -1
- package/dist/cjs/parseResponseToStream.cjs +1 -1
- package/dist/cjs/parseResponseToStream.cjs.map +1 -1
- package/dist/cjs/parseString.cjs +1 -1
- package/dist/cjs/parseString.cjs.map +1 -1
- package/dist/cjs/parseStringToArraySync.cjs +1 -1
- package/dist/cjs/parseStringToArraySync.cjs.map +1 -1
- package/dist/cjs/parseStringToArraySyncWASM.cjs +1 -1
- package/dist/cjs/parseStringToArraySyncWASM.cjs.map +1 -1
- package/dist/cjs/parseStringToIterableIterator.cjs +1 -1
- package/dist/cjs/parseStringToIterableIterator.cjs.map +1 -1
- package/dist/cjs/parseStringToStream.cjs +1 -1
- package/dist/cjs/parseStringToStream.cjs.map +1 -1
- package/dist/cjs/utils/convertBinaryToString.cjs.map +1 -0
- package/dist/cjs/utils/pipeline.cjs +1 -1
- package/dist/cjs/utils/pipeline.cjs.map +1 -1
- package/dist/cjs/web-csv-toolbox.cjs +1 -1
- package/dist/es/Lexer.js +6 -0
- package/dist/es/Lexer.js.map +1 -1
- package/dist/es/LexerTransformer.js +12 -3
- package/dist/es/LexerTransformer.js.map +1 -1
- package/dist/es/RecordAssembler.js +3 -2
- package/dist/es/RecordAssembler.js.map +1 -1
- package/dist/es/RecordAssemblerTransformer.js +14 -5
- package/dist/es/RecordAssemblerTransformer.js.map +1 -1
- package/dist/es/assertCommonOptions.js +8 -7
- package/dist/es/assertCommonOptions.js.map +1 -1
- package/dist/es/common/errors.js +20 -0
- package/dist/es/common/errors.js.map +1 -0
- package/dist/es/commonParseErrorHandling.js +13 -0
- package/dist/es/commonParseErrorHandling.js.map +1 -0
- package/dist/es/getOptionsFromResponse.js +1 -1
- package/dist/es/getOptionsFromResponse.js.map +1 -1
- package/dist/es/parseBinaryToArraySync.js +8 -3
- package/dist/es/parseBinaryToArraySync.js.map +1 -1
- package/dist/es/parseBinaryToIterableIterator.js +8 -3
- package/dist/es/parseBinaryToIterableIterator.js.map +1 -1
- package/dist/es/parseBinaryToStream.js +8 -3
- package/dist/es/parseBinaryToStream.js.map +1 -1
- package/dist/es/parseResponse.js +9 -4
- package/dist/es/parseResponse.js.map +1 -1
- package/dist/es/parseResponseToStream.js +9 -4
- package/dist/es/parseResponseToStream.js.map +1 -1
- package/dist/es/parseString.js +6 -1
- package/dist/es/parseString.js.map +1 -1
- package/dist/es/parseStringToArraySync.js +9 -4
- package/dist/es/parseStringToArraySync.js.map +1 -1
- package/dist/es/parseStringToArraySyncWASM.js +9 -2
- package/dist/es/parseStringToArraySyncWASM.js.map +1 -1
- package/dist/es/parseStringToIterableIterator.js +9 -4
- package/dist/es/parseStringToIterableIterator.js.map +1 -1
- package/dist/es/parseStringToStream.js +15 -10
- package/dist/es/parseStringToStream.js.map +1 -1
- package/dist/es/utils/convertBinaryToString.js.map +1 -0
- package/dist/es/utils/pipeline.js +1 -1
- package/dist/es/utils/pipeline.js.map +1 -1
- package/dist/es/web-csv-toolbox.js +6 -6
- package/dist/types/LexerTransformer.d.ts +9 -7
- package/dist/types/LexerTransformer.test.d.ts +1 -0
- package/dist/types/RecordAssemblerTransformer.d.ts +2 -0
- package/dist/types/assertCommonOptions.d.ts +2 -1
- package/dist/types/common/errors.d.ts +26 -0
- package/dist/types/commonParseErrorHandling.d.ts +8 -0
- package/dist/types/getOptionsFromResponse.d.ts +8 -0
- package/dist/types/parseBinaryToArraySync.test.d.ts +1 -0
- package/dist/types/parseBinaryToIterableIterator.d.ts +8 -0
- package/dist/types/utils/convertBinaryToString.d.ts +11 -0
- package/dist/types/web-csv-toolbox.d.ts +6 -6
- package/dist/web-csv-toolbox.umd.cjs +1 -1
- package/dist/web-csv-toolbox.umd.cjs.map +1 -1
- package/package.json +1 -1
- package/dist/cjs/convertBinaryToString.cjs.map +0 -1
- package/dist/es/convertBinaryToString.js.map +0 -1
- package/dist/types/convertBinaryToString.d.ts +0 -2
- /package/dist/cjs/{convertBinaryToString.cjs → utils/convertBinaryToString.cjs} +0 -0
- /package/dist/es/{convertBinaryToString.js → utils/convertBinaryToString.js} +0 -0
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { parseStringToArraySync } from './_virtual/_web-csv-toolbox-wasm.js';
|
|
2
|
+
import { assertCommonOptions } from './assertCommonOptions.js';
|
|
3
|
+
import { InvalidOptionError } from './common/errors.js';
|
|
2
4
|
import { DOUBLE_QUOTE, COMMA } from './constants.js';
|
|
3
5
|
|
|
4
6
|
function parseStringToArraySyncWASM(csv, options = {}) {
|
|
5
7
|
const { delimiter = COMMA, quotation = DOUBLE_QUOTE } = options;
|
|
6
8
|
if (typeof delimiter !== "string" || delimiter.length !== 1) {
|
|
7
|
-
throw new
|
|
9
|
+
throw new InvalidOptionError(
|
|
10
|
+
"Invalid delimiter, must be a single character on WASM."
|
|
11
|
+
);
|
|
8
12
|
}
|
|
9
13
|
if (quotation !== DOUBLE_QUOTE) {
|
|
10
|
-
throw new
|
|
14
|
+
throw new InvalidOptionError(
|
|
15
|
+
"Invalid quotation, must be double quote on WASM."
|
|
16
|
+
);
|
|
11
17
|
}
|
|
18
|
+
assertCommonOptions({ delimiter, quotation });
|
|
12
19
|
const demiliterCode = delimiter.charCodeAt(0);
|
|
13
20
|
return JSON.parse(parseStringToArraySync(csv, demiliterCode));
|
|
14
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToArraySyncWASM.js","sources":["../../src/parseStringToArraySyncWASM.ts"],"sourcesContent":["import { parseStringToArraySync } from \"web-csv-toolbox-wasm\";\nimport type { CSVRecord, CommonOptions } from \"./common/types.ts\";\nimport { COMMA, DOUBLE_QUOTE } from \"./constants.ts\";\nimport type { loadWASM } from \"./loadWASM.ts\";\n\n/**\n * Parse CSV string to record of arrays.\n *\n * @param csv CSV string\n * @param options Parse options\n * @returns Record of arrays\n *\n * @remarks\n * This function uses WebAssembly to parse CSV string.\n * Before calling this function, you must call {@link loadWASM} function.\n *\n * This function only supports UTF-8 string.\n * If you pass a string that is not UTF-8, like UTF-16, it throws an error.\n * This function only supports double quote as quotation.\n * So, `options.quotation` must be `\"` (double quote). Otherwise, it throws an error.\n *\n * And this function only supports single character as delimiter.\n * So, `options.delimiter` must be a single character. Otherwise, it throws an error.\n *\n * @example\n *\n * ```ts\n * import { loadWASM, parseStringWASM } from \"web-csv-toolbox\";\n *\n * await loadWASM();\n *\n * const csv = \"a,b,c\\n1,2,3\";\n *\n * const result = parseStringToArraySyncWASM(csv);\n * console.log(result);\n * // Prints:\n * // [{ a: \"1\", b: \"2\", c: \"3\" }]\n * ```\n * @beta\n */\nexport function parseStringToArraySyncWASM<Header extends readonly string[]>(\n csv: string,\n options: CommonOptions = {},\n): CSVRecord<Header>[] {\n const { delimiter = COMMA, quotation = DOUBLE_QUOTE } = options;\n if (typeof delimiter !== \"string\" || delimiter.length !== 1) {\n throw new
|
|
1
|
+
{"version":3,"file":"parseStringToArraySyncWASM.js","sources":["../../src/parseStringToArraySyncWASM.ts"],"sourcesContent":["import { parseStringToArraySync } from \"web-csv-toolbox-wasm\";\nimport { assertCommonOptions } from \"./assertCommonOptions.ts\";\nimport { InvalidOptionError } from \"./common/errors.ts\";\nimport type { CSVRecord, CommonOptions } from \"./common/types.ts\";\nimport { COMMA, DOUBLE_QUOTE } from \"./constants.ts\";\nimport type { loadWASM } from \"./loadWASM.ts\";\n\n/**\n * Parse CSV string to record of arrays.\n *\n * @param csv CSV string\n * @param options Parse options\n * @returns Record of arrays\n *\n * @remarks\n * This function uses WebAssembly to parse CSV string.\n * Before calling this function, you must call {@link loadWASM} function.\n *\n * This function only supports UTF-8 string.\n * If you pass a string that is not UTF-8, like UTF-16, it throws an error.\n * This function only supports double quote as quotation.\n * So, `options.quotation` must be `\"` (double quote). Otherwise, it throws an error.\n *\n * And this function only supports single character as delimiter.\n * So, `options.delimiter` must be a single character. Otherwise, it throws an error.\n *\n * @example\n *\n * ```ts\n * import { loadWASM, parseStringWASM } from \"web-csv-toolbox\";\n *\n * await loadWASM();\n *\n * const csv = \"a,b,c\\n1,2,3\";\n *\n * const result = parseStringToArraySyncWASM(csv);\n * console.log(result);\n * // Prints:\n * // [{ a: \"1\", b: \"2\", c: \"3\" }]\n * ```\n * @beta\n */\nexport function parseStringToArraySyncWASM<Header extends readonly string[]>(\n csv: string,\n options: CommonOptions = {},\n): CSVRecord<Header>[] {\n const { delimiter = COMMA, quotation = DOUBLE_QUOTE } = options;\n if (typeof delimiter !== \"string\" || delimiter.length !== 1) {\n throw new InvalidOptionError(\n \"Invalid delimiter, must be a single character on WASM.\",\n );\n }\n if (quotation !== DOUBLE_QUOTE) {\n throw new InvalidOptionError(\n \"Invalid quotation, must be double quote on WASM.\",\n );\n }\n assertCommonOptions({ delimiter, quotation });\n const demiliterCode = delimiter.charCodeAt(0);\n return JSON.parse(parseStringToArraySync(csv, demiliterCode));\n}\n"],"names":[],"mappings":";;;;;AA0CO,SAAS,0BACd,CAAA,GAAA,EACA,OAAyB,GAAA,EACJ,EAAA;AACrB,EAAA,MAAM,EAAE,SAAA,GAAY,KAAO,EAAA,SAAA,GAAY,cAAiB,GAAA,OAAA,CAAA;AACxD,EAAA,IAAI,OAAO,SAAA,KAAc,QAAY,IAAA,SAAA,CAAU,WAAW,CAAG,EAAA;AAC3D,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR,wDAAA;AAAA,KACF,CAAA;AAAA,GACF;AACA,EAAA,IAAI,cAAc,YAAc,EAAA;AAC9B,IAAA,MAAM,IAAI,kBAAA;AAAA,MACR,kDAAA;AAAA,KACF,CAAA;AAAA,GACF;AACA,EAAoB,mBAAA,CAAA,EAAE,SAAW,EAAA,SAAA,EAAW,CAAA,CAAA;AAC5C,EAAM,MAAA,aAAA,GAAgB,SAAU,CAAA,UAAA,CAAW,CAAC,CAAA,CAAA;AAC5C,EAAA,OAAO,IAAK,CAAA,KAAA,CAAM,sBAAuB,CAAA,GAAA,EAAK,aAAa,CAAC,CAAA,CAAA;AAC9D;;;;"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { Lexer } from './Lexer.js';
|
|
2
2
|
import { RecordAssembler } from './RecordAssembler.js';
|
|
3
|
+
import { commonParseErrorHandling } from './commonParseErrorHandling.js';
|
|
3
4
|
|
|
4
5
|
function parseStringToIterableIterator(csv, options) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
try {
|
|
7
|
+
const lexer = new Lexer(options);
|
|
8
|
+
const assembler = new RecordAssembler(options);
|
|
9
|
+
const tokens = lexer.lex(csv);
|
|
10
|
+
return assembler.assemble(tokens);
|
|
11
|
+
} catch (error) {
|
|
12
|
+
commonParseErrorHandling(error);
|
|
13
|
+
}
|
|
9
14
|
}
|
|
10
15
|
|
|
11
16
|
export { parseStringToIterableIterator };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToIterableIterator.js","sources":["../../src/parseStringToIterableIterator.ts"],"sourcesContent":["import { Lexer } from \"./Lexer.ts\";\nimport { RecordAssembler } from \"./RecordAssembler.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\n\nexport function parseStringToIterableIterator<\n Header extends ReadonlyArray<string>,\n>(\n csv: string,\n options?: ParseOptions<Header>,\n): IterableIterator<CSVRecord<Header>> {\n const lexer = new Lexer(options);\n
|
|
1
|
+
{"version":3,"file":"parseStringToIterableIterator.js","sources":["../../src/parseStringToIterableIterator.ts"],"sourcesContent":["import { Lexer } from \"./Lexer.ts\";\nimport { RecordAssembler } from \"./RecordAssembler.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\n\nexport function parseStringToIterableIterator<\n Header extends ReadonlyArray<string>,\n>(\n csv: string,\n options?: ParseOptions<Header>,\n): IterableIterator<CSVRecord<Header>> {\n try {\n const lexer = new Lexer(options);\n const assembler = new RecordAssembler(options);\n const tokens = lexer.lex(csv);\n return assembler.assemble(tokens);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":[],"mappings":";;;;AAKgB,SAAA,6BAAA,CAGd,KACA,OACqC,EAAA;AACrC,EAAI,IAAA;AACF,IAAM,MAAA,KAAA,GAAQ,IAAI,KAAA,CAAM,OAAO,CAAA,CAAA;AAC/B,IAAM,MAAA,SAAA,GAAY,IAAI,eAAA,CAAgB,OAAO,CAAA,CAAA;AAC7C,IAAM,MAAA,MAAA,GAAS,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC5B,IAAO,OAAA,SAAA,CAAU,SAAS,MAAM,CAAA,CAAA;AAAA,WACzB,KAAO,EAAA;AACd,IAAA,wBAAA,CAAyB,KAAK,CAAA,CAAA;AAAA,GAChC;AACF;;;;"}
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
import { Lexer } from './Lexer.js';
|
|
2
2
|
import { RecordAssembler } from './RecordAssembler.js';
|
|
3
|
+
import { commonParseErrorHandling } from './commonParseErrorHandling.js';
|
|
3
4
|
|
|
4
5
|
function parseStringToStream(csv, options) {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
try {
|
|
7
|
+
const lexer = new Lexer(options);
|
|
8
|
+
const assembler = new RecordAssembler(options);
|
|
9
|
+
return new ReadableStream({
|
|
10
|
+
start(controller) {
|
|
11
|
+
const tokens = lexer.lex(csv);
|
|
12
|
+
for (const record of assembler.assemble(tokens)) {
|
|
13
|
+
controller.enqueue(record);
|
|
14
|
+
}
|
|
15
|
+
controller.close();
|
|
12
16
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
});
|
|
18
|
+
} catch (error) {
|
|
19
|
+
commonParseErrorHandling(error);
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
export { parseStringToStream };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToStream.js","sources":["../../src/parseStringToStream.ts"],"sourcesContent":["import { Lexer } from \"./Lexer.ts\";\nimport { RecordAssembler } from \"./RecordAssembler.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\n\nexport function parseStringToStream<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>> {\n const lexer = new Lexer(options);\n
|
|
1
|
+
{"version":3,"file":"parseStringToStream.js","sources":["../../src/parseStringToStream.ts"],"sourcesContent":["import { Lexer } from \"./Lexer.ts\";\nimport { RecordAssembler } from \"./RecordAssembler.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\n\nexport function parseStringToStream<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>> {\n try {\n const lexer = new Lexer(options);\n const assembler = new RecordAssembler(options);\n return new ReadableStream({\n start(controller) {\n const tokens = lexer.lex(csv);\n for (const record of assembler.assemble(tokens)) {\n controller.enqueue(record);\n }\n controller.close();\n },\n });\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\n"],"names":[],"mappings":";;;;AAKgB,SAAA,mBAAA,CACd,KACA,OACmC,EAAA;AACnC,EAAI,IAAA;AACF,IAAM,MAAA,KAAA,GAAQ,IAAI,KAAA,CAAM,OAAO,CAAA,CAAA;AAC/B,IAAM,MAAA,SAAA,GAAY,IAAI,eAAA,CAAgB,OAAO,CAAA,CAAA;AAC7C,IAAA,OAAO,IAAI,cAAe,CAAA;AAAA,MACxB,MAAM,UAAY,EAAA;AAChB,QAAM,MAAA,MAAA,GAAS,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC5B,QAAA,KAAA,MAAW,MAAU,IAAA,SAAA,CAAU,QAAS,CAAA,MAAM,CAAG,EAAA;AAC/C,UAAA,UAAA,CAAW,QAAQ,MAAM,CAAA,CAAA;AAAA,SAC3B;AACA,QAAA,UAAA,CAAW,KAAM,EAAA,CAAA;AAAA,OACnB;AAAA,KACD,CAAA,CAAA;AAAA,WACM,KAAO,EAAA;AACd,IAAA,wBAAA,CAAyB,KAAK,CAAA,CAAA;AAAA,GAChC;AACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convertBinaryToString.js","sources":["../../../src/utils/convertBinaryToString.ts"],"sourcesContent":["import type { BinaryOptions } from \"../common/types.ts\";\n\n/**\n * Converts a binary string to a string.\n *\n * @param binary - The binary string to convert.\n * @param options - The options for parsing the binary string.\n * @returns The converted string.\n * @throws {RangeError} The given charset is not supported.\n * @throws {TypeError} The encoded data was not valid.\n */\nexport function convertBinaryToString(\n binary: Uint8Array | ArrayBuffer,\n options: BinaryOptions,\n): string {\n return new TextDecoder(options?.charset, {\n ignoreBOM: options?.ignoreBOM,\n fatal: options?.fatal,\n }).decode(binary instanceof ArrayBuffer ? new Uint8Array(binary) : binary);\n}\n"],"names":[],"mappings":"AAWgB,SAAA,qBAAA,CACd,QACA,OACQ,EAAA;AACR,EAAO,OAAA,IAAI,WAAY,CAAA,OAAA,EAAS,OAAS,EAAA;AAAA,IACvC,WAAW,OAAS,EAAA,SAAA;AAAA,IACpB,OAAO,OAAS,EAAA,KAAA;AAAA,GACjB,EAAE,MAAO,CAAA,MAAA,YAAkB,cAAc,IAAI,UAAA,CAAW,MAAM,CAAA,GAAI,MAAM,CAAA,CAAA;AAC3E;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sources":["../../../src/utils/pipeline.ts"],"sourcesContent":["export function pipeline<I, T, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T>,\n transformer2: TransformStream<T, O>,\n): ReadableStream<O>;\nexport function pipeline<I, T1, T2, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T1>,\n transformer2: TransformStream<T1, T2>,\n transformer3: TransformStream<T2, O>,\n): ReadableStream<O>;\nexport function pipeline<I, T1, T2, T3, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T1>,\n transformer2: TransformStream<T1, T2>,\n transformer3: TransformStream<T2, T3>,\n transformer4: TransformStream<T3, O>,\n): ReadableStream<O>;\nexport function pipeline<I, O>(\n stream: ReadableStream<I>,\n ...transformers: TransformStream[]\n): ReadableStream<O> {\n return new ReadableStream({\n start: (controller) => {\n (() =>\n transformers\n .reduce<ReadableStream>(\n (stream, transformer) => stream.pipeThrough(transformer),\n stream,\n )\n .pipeTo(\n new WritableStream({\n write: (v) => controller.enqueue(v),\n close: () => controller.close(),\n }),\n ))();\n },\n });\n}\n"],"names":["stream"],"mappings":"AAkBgB,SAAA,QAAA,CACd,WACG,YACgB,EAAA;AACnB,EAAA,OAAO,IAAI,cAAe,CAAA;AAAA,IACxB,KAAA,EAAO,CAAC,UAAe,KAAA;AACrB,MAAA,CAAC,MACC,YACG,CAAA,MAAA;AAAA,QACC,CAACA,OAAAA,EAAQ,WAAgBA,KAAAA,OAAAA,CAAO,YAAY,WAAW,CAAA;AAAA,QACvD,MAAA;AAAA,OAED,CAAA,MAAA;AAAA,QACC,IAAI,cAAe,CAAA;AAAA,UACjB,KAAO,EAAA,CAAC,CAAM,KAAA,UAAA,CAAW,QAAQ,CAAC,CAAA;AAAA,UAClC,KAAA,EAAO,MAAM,UAAA,CAAW,KAAM,EAAA;AAAA,SAC/B,CAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"pipeline.js","sources":["../../../src/utils/pipeline.ts"],"sourcesContent":["export function pipeline<I, T, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T>,\n transformer2: TransformStream<T, O>,\n): ReadableStream<O>;\nexport function pipeline<I, T1, T2, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T1>,\n transformer2: TransformStream<T1, T2>,\n transformer3: TransformStream<T2, O>,\n): ReadableStream<O>;\nexport function pipeline<I, T1, T2, T3, O>(\n stream: ReadableStream<I>,\n transformer1: TransformStream<I, T1>,\n transformer2: TransformStream<T1, T2>,\n transformer3: TransformStream<T2, T3>,\n transformer4: TransformStream<T3, O>,\n): ReadableStream<O>;\nexport function pipeline<I, O>(\n stream: ReadableStream<I>,\n ...transformers: TransformStream[]\n): ReadableStream<O> {\n return new ReadableStream({\n start: (controller) => {\n (() =>\n transformers\n .reduce<ReadableStream>(\n (stream, transformer) => stream.pipeThrough(transformer),\n stream,\n )\n .pipeTo(\n new WritableStream({\n write: (v) => controller.enqueue(v),\n close: () => controller.close(),\n }),\n )\n .catch((error) => controller.error(error)))();\n },\n });\n}\n"],"names":["stream"],"mappings":"AAkBgB,SAAA,QAAA,CACd,WACG,YACgB,EAAA;AACnB,EAAA,OAAO,IAAI,cAAe,CAAA;AAAA,IACxB,KAAA,EAAO,CAAC,UAAe,KAAA;AACrB,MAAA,CAAC,MACC,YACG,CAAA,MAAA;AAAA,QACC,CAACA,OAAAA,EAAQ,WAAgBA,KAAAA,OAAAA,CAAO,YAAY,WAAW,CAAA;AAAA,QACvD,MAAA;AAAA,OAED,CAAA,MAAA;AAAA,QACC,IAAI,cAAe,CAAA;AAAA,UACjB,KAAO,EAAA,CAAC,CAAM,KAAA,UAAA,CAAW,QAAQ,CAAC,CAAA;AAAA,UAClC,KAAA,EAAO,MAAM,UAAA,CAAW,KAAM,EAAA;AAAA,SAC/B,CAAA;AAAA,OACH,CACC,MAAM,CAAC,KAAA,KAAU,WAAW,KAAM,CAAA,KAAK,CAAC,CAAG,GAAA,CAAA;AAAA,KAClD;AAAA,GACD,CAAA,CAAA;AACH;;;;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export { Field, FieldDelimiter, RecordDelimiter } from './common/constants.js';
|
|
2
2
|
export { LexerTransformer } from './LexerTransformer.js';
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
3
|
+
export { loadWASM } from './loadWASM.js';
|
|
4
|
+
export { parse } from './parse.js';
|
|
5
5
|
export { parseBinary } from './parseBinary.js';
|
|
6
|
-
export { parseUint8ArrayStream } from './parseUint8ArrayStream.js';
|
|
7
|
-
export { parseStringStream } from './parseStringStream.js';
|
|
8
6
|
export { parseResponse } from './parseResponse.js';
|
|
9
|
-
export {
|
|
10
|
-
export {
|
|
7
|
+
export { parseString } from './parseString.js';
|
|
8
|
+
export { parseStringStream } from './parseStringStream.js';
|
|
11
9
|
export { parseStringToArraySyncWASM } from './parseStringToArraySyncWASM.js';
|
|
10
|
+
export { parseUint8ArrayStream } from './parseUint8ArrayStream.js';
|
|
11
|
+
export { RecordAssemblerTransformer } from './RecordAssemblerTransformer.js';
|
|
12
12
|
//# sourceMappingURL=web-csv-toolbox.js.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Lexer } from "./Lexer.ts";
|
|
1
2
|
import type { CommonOptions, Token } from "./common/types.ts";
|
|
2
3
|
/**
|
|
3
4
|
* A transform stream that converts a stream of tokens into a stream of rows.
|
|
@@ -19,16 +20,17 @@ import type { CommonOptions, Token } from "./common/types.ts";
|
|
|
19
20
|
* console.log(token);
|
|
20
21
|
* }
|
|
21
22
|
* }}));
|
|
22
|
-
* // { type: Field, value: "name" }
|
|
23
|
-
* // FieldDelimiter
|
|
24
|
-
* // { type: Field, value: "age" }
|
|
25
|
-
* // RecordDelimiter
|
|
26
|
-
* // { type: Field, value: "Alice" }
|
|
27
|
-
* // FieldDelimiter
|
|
23
|
+
* // { type: Field, value: "name", location: {...} }
|
|
24
|
+
* // { type: FieldDelimiter, value: ",", location: {...} }
|
|
25
|
+
* // { type: Field, value: "age", location: {...} }
|
|
26
|
+
* // { type: RecordDelimiter, value: "\r\n", location: {...} }
|
|
27
|
+
* // { type: Field, value: "Alice", location: {...} }
|
|
28
|
+
* // { type: FieldDelimiter, value: ",", location: {...} }
|
|
28
29
|
* // { type: Field, value: "20" }
|
|
29
|
-
* // RecordDelimiter
|
|
30
|
+
* // { type: RecordDelimiter, value: "\r\n", location: {...} }
|
|
30
31
|
* ```
|
|
31
32
|
*/
|
|
32
33
|
export declare class LexerTransformer extends TransformStream<string, Token[]> {
|
|
34
|
+
readonly lexer: Lexer;
|
|
33
35
|
constructor(options?: CommonOptions);
|
|
34
36
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RecordAssembler } from "./RecordAssembler.ts";
|
|
1
2
|
import type { CSVRecord, RecordAssemblerOptions, Token } from "./common/types.ts";
|
|
2
3
|
/**
|
|
3
4
|
* A transform stream that converts a stream of tokens into a stream of rows.
|
|
@@ -43,5 +44,6 @@ import type { CSVRecord, RecordAssemblerOptions, Token } from "./common/types.ts
|
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
46
|
export declare class RecordAssemblerTransformer<Header extends ReadonlyArray<string>> extends TransformStream<Token[], CSVRecord<Header>> {
|
|
47
|
+
readonly assembler: RecordAssembler<Header>;
|
|
46
48
|
constructor(options?: RecordAssemblerOptions<Header>);
|
|
47
49
|
}
|
|
@@ -15,6 +15,7 @@ import type { CommonOptions } from "./common/types.ts";
|
|
|
15
15
|
* ```
|
|
16
16
|
*
|
|
17
17
|
* @param options - The options object to be validated.
|
|
18
|
-
* @throws {
|
|
18
|
+
* @throws {InvalidOptionError} If any required property is missing or if the delimiter is the same as the quotation.
|
|
19
|
+
* @throws {TypeError} If any required property is not a string.
|
|
19
20
|
*/
|
|
20
21
|
export declare function assertCommonOptions(options: Required<CommonOptions>): asserts options is Required<CommonOptions>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Position } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Error class for invalid option errors.
|
|
4
|
+
*/
|
|
5
|
+
export declare class InvalidOptionError extends Error {
|
|
6
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Options for creating a parse error.
|
|
10
|
+
*/
|
|
11
|
+
export interface ParseErrorOptions extends ErrorOptions {
|
|
12
|
+
/**
|
|
13
|
+
* The position where the error occurred.
|
|
14
|
+
*/
|
|
15
|
+
position?: Position;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Error class for parse errors.
|
|
19
|
+
*/
|
|
20
|
+
export declare class ParseError extends Error {
|
|
21
|
+
/**
|
|
22
|
+
* The position where the error occurred.
|
|
23
|
+
*/
|
|
24
|
+
position?: Position;
|
|
25
|
+
constructor(message?: string, options?: ParseErrorOptions);
|
|
26
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common error handling for parsing CSV data.
|
|
3
|
+
*
|
|
4
|
+
* @param error - The error to handle.
|
|
5
|
+
* @throws {ParseError} When an error occurs while parsing the CSV data.
|
|
6
|
+
* @throws {InvalidOptionError} When an invalid option is provided.
|
|
7
|
+
*/
|
|
8
|
+
export declare function commonParseErrorHandling(error: unknown): never;
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import type { ParseBinaryOptions } from "./common/types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Extracts the options from the response object.
|
|
4
|
+
*
|
|
5
|
+
* @param response - The response object from which to extract the options.
|
|
6
|
+
* @param options - The options to merge with the extracted options.
|
|
7
|
+
* @returns The options extracted from the response.
|
|
8
|
+
* @throws {RangeError} - The content type is not supported.
|
|
9
|
+
*/
|
|
2
10
|
export declare function getOptionsFromResponse<Header extends ReadonlyArray<string>>(response: Response, options?: ParseBinaryOptions<Header>): ParseBinaryOptions<Header>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import type { CSVRecord, ParseBinaryOptions } from "./common/types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Parses the given binary data into an iterable iterator of CSV records.
|
|
4
|
+
*
|
|
5
|
+
* @param binary - The binary data to parse.
|
|
6
|
+
* @param options - The parse options.
|
|
7
|
+
* @returns An iterable iterator of CSV records.
|
|
8
|
+
* @throws {ParseError} When an error occurs while parsing the CSV data.
|
|
9
|
+
*/
|
|
2
10
|
export declare function parseBinaryToIterableIterator<Header extends ReadonlyArray<string>>(binary: Uint8Array | ArrayBuffer, options?: ParseBinaryOptions<Header>): IterableIterator<CSVRecord<Header>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BinaryOptions } from "../common/types.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Converts a binary string to a string.
|
|
4
|
+
*
|
|
5
|
+
* @param binary - The binary string to convert.
|
|
6
|
+
* @param options - The options for parsing the binary string.
|
|
7
|
+
* @returns The converted string.
|
|
8
|
+
* @throws {RangeError} The given charset is not supported.
|
|
9
|
+
* @throws {TypeError} The encoded data was not valid.
|
|
10
|
+
*/
|
|
11
|
+
export declare function convertBinaryToString(binary: Uint8Array | ArrayBuffer, options: BinaryOptions): string;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * from "./common/constants.ts";
|
|
2
2
|
export * from "./common/types.ts";
|
|
3
3
|
export * from "./LexerTransformer.ts";
|
|
4
|
-
export * from "./
|
|
5
|
-
export * from "./
|
|
4
|
+
export * from "./loadWASM.ts";
|
|
5
|
+
export * from "./parse.ts";
|
|
6
6
|
export * from "./parseBinary.ts";
|
|
7
|
-
export * from "./parseUint8ArrayStream.ts";
|
|
8
|
-
export * from "./parseStringStream.ts";
|
|
9
7
|
export * from "./parseResponse.ts";
|
|
10
|
-
export * from "./
|
|
11
|
-
export * from "./
|
|
8
|
+
export * from "./parseString.ts";
|
|
9
|
+
export * from "./parseStringStream.ts";
|
|
12
10
|
export * from "./parseStringToArraySyncWASM.ts";
|
|
11
|
+
export * from "./parseUint8ArrayStream.ts";
|
|
12
|
+
export * from "./RecordAssemblerTransformer.ts";
|