web-csv-toolbox 0.11.0-next-3e76d727a5e0c4f1fbd537e0a89bed474495294b → 0.11.0-next-0d717debabfdae743295c1993013538ce0a3176e
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.map +1 -1
- package/dist/cjs/_virtual/web_csv_toolbox_wasm_bg.wasm.cjs +1 -1
- package/dist/cjs/assertCommonOptions.cjs +1 -1
- package/dist/cjs/assertCommonOptions.cjs.map +1 -1
- package/dist/cjs/common/errors.cjs +1 -1
- package/dist/cjs/common/errors.cjs.map +1 -1
- package/dist/cjs/commonParseErrorHandling.cjs +1 -1
- package/dist/cjs/commonParseErrorHandling.cjs.map +1 -1
- package/dist/cjs/constants.cjs +1 -1
- package/dist/cjs/constants.cjs.map +1 -1
- package/dist/cjs/parse.cjs.map +1 -1
- package/dist/cjs/parseString.cjs.map +1 -1
- package/dist/cjs/parseStringStream.cjs.map +1 -1
- package/dist/cjs/parseStringStreamToStream.cjs.map +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.map +1 -1
- package/dist/cjs/parseStringToStream.cjs.map +1 -1
- package/dist/cjs/web-csv-toolbox.cjs +1 -1
- package/dist/es/Lexer.js +7 -6
- package/dist/es/Lexer.js.map +1 -1
- package/dist/es/LexerTransformer.js.map +1 -1
- package/dist/es/_virtual/web_csv_toolbox_wasm_bg.wasm.js +1 -1
- package/dist/es/assertCommonOptions.js +4 -5
- package/dist/es/assertCommonOptions.js.map +1 -1
- package/dist/es/common/errors.js +1 -7
- package/dist/es/common/errors.js.map +1 -1
- package/dist/es/commonParseErrorHandling.js +2 -2
- package/dist/es/commonParseErrorHandling.js.map +1 -1
- package/dist/es/constants.js +3 -1
- package/dist/es/constants.js.map +1 -1
- package/dist/es/parse.js.map +1 -1
- package/dist/es/parseString.js.map +1 -1
- package/dist/es/parseStringStream.js.map +1 -1
- package/dist/es/parseStringStreamToStream.js.map +1 -1
- package/dist/es/parseStringToArraySync.js.map +1 -1
- package/dist/es/parseStringToArraySyncWASM.js +4 -7
- package/dist/es/parseStringToArraySyncWASM.js.map +1 -1
- package/dist/es/parseStringToIterableIterator.js.map +1 -1
- package/dist/es/parseStringToStream.js.map +1 -1
- package/dist/es/web-csv-toolbox.js +1 -1
- package/dist/types/Lexer.d.ts +3 -2
- package/dist/types/LexerTransformer.d.ts +4 -3
- package/dist/types/assertCommonOptions.d.ts +2 -2
- package/dist/types/common/errors.d.ts +0 -6
- package/dist/types/common/types.d.ts +8 -6
- package/dist/types/commonParseErrorHandling.d.ts +2 -1
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/escapeField.d.ts +2 -2
- package/dist/types/parse.d.ts +7 -2
- package/dist/types/parse.test-d.d.ts +1 -0
- package/dist/types/parseString.d.ts +7 -1
- package/dist/types/parseString.test-d.d.ts +1 -0
- package/dist/types/parseStringStream.d.ts +5 -1
- package/dist/types/parseStringStream.test-d.d.ts +1 -0
- package/dist/types/parseStringStreamToStream.d.ts +5 -1
- package/dist/types/parseStringStreamToStream.test-d.d.ts +1 -0
- package/dist/types/parseStringToArraySync.d.ts +5 -1
- package/dist/types/parseStringToArraySync.test-d.d.ts +1 -0
- package/dist/types/parseStringToArraySyncWASM.d.ts +6 -1
- package/dist/types/parseStringToArraySyncWASM.test-d.d.ts +1 -0
- package/dist/types/parseStringToIterableIterator.d.ts +5 -1
- package/dist/types/parseStringToIterableIterator.test-d.d.ts +1 -0
- package/dist/types/parseStringToStream.d.ts +5 -1
- package/dist/types/parseStringToStream.test-d.d.ts +1 -0
- package/dist/types/utils/types.d.ts +115 -0
- package/dist/types/utils/types.test-d.d.ts +1 -0
- package/dist/web-csv-toolbox.umd.cjs +1 -1
- package/dist/web-csv-toolbox.umd.cjs.map +1 -1
- package/dist/web_csv_toolbox_wasm_bg.wasm +0 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sources":["../../../src/common/errors.ts"],"sourcesContent":["import type { Position } from \"./types.js\";\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"errors.js","sources":["../../../src/common/errors.ts"],"sourcesContent":["import type { Position } from \"./types.js\";\n\n/**\n * Options for creating a parse error.\n */\nexport interface ParseErrorOptions extends ErrorOptions {\n /**\n * The position where the error occurred.\n */\n position?: Position;\n}\n\n/**\n * Error class for parse errors.\n *\n * @remarks\n * This error is thrown when a parsing error occurs.\n * {@link ParseError} is a subclass of {@link !SyntaxError}.\n *\n * This is in reference to the specification\n * that the error thrown when a parse error occurs in the {@link !JSON.parse} function is {@link !SyntaxError}.\n */\nexport class ParseError extends SyntaxError {\n /**\n * The position where the error occurred.\n */\n public position?: Position;\n\n constructor(message?: string, options?: ParseErrorOptions) {\n super(message, { cause: options?.cause });\n this.name = \"ParseError\";\n this.position = options?.position;\n }\n}\n"],"names":[],"mappings":"AAsBO,MAAM,mBAAmB,WAAY,CAAA;AAAA;AAAA;AAAA;AAAA,EAInC,QAAA,CAAA;AAAA,EAEP,WAAA,CAAY,SAAkB,OAA6B,EAAA;AACzD,IAAA,KAAA,CAAM,OAAS,EAAA,EAAE,KAAO,EAAA,OAAA,EAAS,OAAO,CAAA,CAAA;AACxC,IAAA,IAAA,CAAK,IAAO,GAAA,YAAA,CAAA;AACZ,IAAA,IAAA,CAAK,WAAW,OAAS,EAAA,QAAA,CAAA;AAAA,GAC3B;AACF;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ParseError
|
|
1
|
+
import { ParseError } from './common/errors.js';
|
|
2
2
|
|
|
3
3
|
function commonParseErrorHandling(error) {
|
|
4
|
-
if (error instanceof ParseError || error instanceof
|
|
4
|
+
if (error instanceof ParseError || error instanceof RangeError || error instanceof TypeError) {
|
|
5
5
|
throw error;
|
|
6
6
|
}
|
|
7
7
|
throw new ParseError("An error occurred while parsing the CSV data.", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonParseErrorHandling.js","sources":["../../src/commonParseErrorHandling.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"commonParseErrorHandling.js","sources":["../../src/commonParseErrorHandling.ts"],"sourcesContent":["import { ParseError } from \"./common/errors\";\n\n/**\n * Common error handling for parsing CSV data.\n *\n * @param error - The error to handle.\n * @throws {ParseError} When an error occurs while parsing the CSV data.\n * @throws {RangeError} When an invalid option is provided.\n * @throws {TypeError} When an invalid option is provided.\n */\n\nexport function commonParseErrorHandling(error: unknown): never {\n if (\n error instanceof ParseError ||\n error instanceof RangeError ||\n error instanceof TypeError\n ) {\n throw error;\n }\n throw new ParseError(\"An error occurred while parsing the CSV data.\", {\n cause: error,\n });\n}\n"],"names":[],"mappings":";;AAWO,SAAS,yBAAyB,KAAuB,EAAA;AAC9D,EAAA,IACE,KAAiB,YAAA,UAAA,IACjB,KAAiB,YAAA,UAAA,IACjB,iBAAiB,SACjB,EAAA;AACA,IAAM,MAAA,KAAA,CAAA;AAAA,GACR;AACA,EAAM,MAAA,IAAI,WAAW,+CAAiD,EAAA;AAAA,IACpE,KAAO,EAAA,KAAA;AAAA,GACR,CAAA,CAAA;AACH;;;;"}
|
package/dist/es/constants.js
CHANGED
|
@@ -3,6 +3,8 @@ const CRLF = "\r\n";
|
|
|
3
3
|
const LF = "\n";
|
|
4
4
|
const COMMA = ",";
|
|
5
5
|
const DOUBLE_QUOTE = '"';
|
|
6
|
+
const DEFAULT_DELIMITER = COMMA;
|
|
7
|
+
const DEFAULT_QUOTATION = DOUBLE_QUOTE;
|
|
6
8
|
|
|
7
|
-
export { COMMA, CR, CRLF, DOUBLE_QUOTE, LF };
|
|
9
|
+
export { COMMA, CR, CRLF, DEFAULT_DELIMITER, DEFAULT_QUOTATION, DOUBLE_QUOTE, LF };
|
|
8
10
|
//# sourceMappingURL=constants.js.map
|
package/dist/es/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["export const CR = \"\\r\";\nexport const CRLF = \"\\r\\n\";\nexport const LF = \"\\n\";\n\n/**\n * COMMA is a symbol for comma(,).\n */\nexport const COMMA = \",\";\n\n/**\n * DOUBLE_QUOTE is a symbol for double quote(\").\n */\nexport const DOUBLE_QUOTE = '\"';\n"],"names":[],"mappings":"AAAO,MAAM,EAAK,GAAA,KAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../src/constants.ts"],"sourcesContent":["export const CR = \"\\r\";\nexport type CR = typeof CR;\n\nexport const CRLF = \"\\r\\n\";\nexport type CRLF = typeof CRLF;\n\nexport const LF = \"\\n\";\nexport type LF = typeof LF;\n\nexport type Newline = CRLF | CR | LF;\n\n/**\n * COMMA is a symbol for comma(,).\n */\nexport const COMMA = \",\";\n\n/**\n * DOUBLE_QUOTE is a symbol for double quote(\").\n */\nexport const DOUBLE_QUOTE = '\"';\n\nexport const DEFAULT_DELIMITER = COMMA;\nexport type DEFAULT_DELIMITER = typeof DEFAULT_DELIMITER;\n\nexport const DEFAULT_QUOTATION = DOUBLE_QUOTE;\nexport type DEFAULT_QUOTATION = typeof DEFAULT_QUOTATION;\n"],"names":[],"mappings":"AAAO,MAAM,EAAK,GAAA,KAAA;AAGX,MAAM,IAAO,GAAA,OAAA;AAGb,MAAM,EAAK,GAAA,KAAA;AAQX,MAAM,KAAQ,GAAA,IAAA;AAKd,MAAM,YAAe,GAAA,IAAA;AAErB,MAAM,iBAAoB,GAAA,MAAA;AAG1B,MAAM,iBAAoB,GAAA;;;;"}
|
package/dist/es/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sources":["../../src/parse.ts"],"sourcesContent":["import type {\n CSV,\n CSVBinary,\n CSVRecord,\n CSVString,\n ParseBinaryOptions,\n ParseOptions,\n} from \"./common/types.ts\";\nimport { parseBinary } from \"./parseBinary.ts\";\nimport { parseResponse } from \"./parseResponse.ts\";\nimport { parseString } from \"./parseString.ts\";\nimport { parseStringStream } from \"./parseStringStream.ts\";\nimport { parseUint8ArrayStream } from \"./parseUint8ArrayStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\n\n/**\n * Parse CSV to records.\n *\n * {@link !String}, {@link !ReadableStream}<string | {@link !Uint8Array}> and {@link !Response} are supported.\n *\n *\n * @typeParam Header Header type like `['name', 'age']`.\n *\n * @param csv CSV string to parse.\n * @param options Parsing options for CSV string parsing.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parse.toArray} function.\n * @category High-level API\n *\n * @remarks\n * {@link parseString}, {@link parseBinary}, {@link parseUint8ArrayStream},\n * {@link parseStringStream} and {@link parseResponse} are used internally.\n *\n * If you known the type of the CSV, it performs better to use them directly.\n *\n * | If you want to parse a... | Use... | Options... |\n * | -------------------------------------------- | ----------------------------- | -------------------------- |\n * | {@link !String} | {@link parseString} | {@link ParseOptions} |\n * | {@link !ReadableStream}<{@link !String}> | {@link parseStringStream} | {@link ParseOptions} |\n * | {@link !Uint8Array} \\| {@link !ArrayBuffer} | {@link parseBinary} | {@link ParseBinaryOptions} |\n * | {@link !ReadableStream}<{@link !Uint8Array}> | {@link parseUint8ArrayStream} | {@link ParseBinaryOptions} |\n * | {@link !Response} | {@link parseResponse} | {@link ParseBinaryOptions} |\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files from streams\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * }\n * });\n *\n * for await (const record of parse(stream)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n *\n * @example Parsing CSV files with headers\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV has no header.\n * const csv = `Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv, { header: ['name', 'age'] })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files with different delimiters characters\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name\\tage\n * Alice\\t42\n * Bob\\t69`;\n *\n * for await (const record of parse(csv, { delimiter: '\\t' })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parse<Header extends ReadonlyArray<string>>(\n csv: CSVString,\n options
|
|
1
|
+
{"version":3,"file":"parse.js","sources":["../../src/parse.ts"],"sourcesContent":["import type {\n CSV,\n CSVBinary,\n CSVRecord,\n CSVString,\n ParseBinaryOptions,\n ParseOptions,\n} from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseBinary } from \"./parseBinary.ts\";\nimport { parseResponse } from \"./parseResponse.ts\";\nimport { parseString } from \"./parseString.ts\";\nimport { parseStringStream } from \"./parseStringStream.ts\";\nimport { parseUint8ArrayStream } from \"./parseUint8ArrayStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV to records.\n *\n * {@link !String}, {@link !ReadableStream}<string | {@link !Uint8Array}> and {@link !Response} are supported.\n *\n *\n * @typeParam Header Header type like `['name', 'age']`.\n *\n * @param csv CSV string to parse.\n * @param options Parsing options for CSV string parsing.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parse.toArray} function.\n * @category High-level API\n *\n * @remarks\n * {@link parseString}, {@link parseBinary}, {@link parseUint8ArrayStream},\n * {@link parseStringStream} and {@link parseResponse} are used internally.\n *\n * If you known the type of the CSV, it performs better to use them directly.\n *\n * | If you want to parse a... | Use... | Options... |\n * | -------------------------------------------- | ----------------------------- | -------------------------- |\n * | {@link !String} | {@link parseString} | {@link ParseOptions} |\n * | {@link !ReadableStream}<{@link !String}> | {@link parseStringStream} | {@link ParseOptions} |\n * | {@link !Uint8Array} \\| {@link !ArrayBuffer} | {@link parseBinary} | {@link ParseBinaryOptions} |\n * | {@link !ReadableStream}<{@link !Uint8Array}> | {@link parseUint8ArrayStream} | {@link ParseBinaryOptions} |\n * | {@link !Response} | {@link parseResponse} | {@link ParseBinaryOptions} |\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files from streams\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * }\n * });\n *\n * for await (const record of parse(stream)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n *\n * @example Parsing CSV files with headers\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV has no header.\n * const csv = `Alice,42\n * Bob,69`;\n *\n * for await (const record of parse(csv, { header: ['name', 'age'] })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n *\n * @example Parsing CSV files with different delimiters characters\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name\\tage\n * Alice\\t42\n * Bob\\t69`;\n *\n * for await (const record of parse(csv, { delimiter: '\\t' })) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parse<const CSVSource extends CSVString>(\n csv: CSVSource,\n): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVString,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVString,\n options: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parse<\n const CSVSource extends CSVString,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\n/**\n * Parse CSV binary to records.\n *\n * @param csv CSV binary to parse.\n * @param options Parsing options for CSV binary parsing.\n *\n * @example Parsing CSV files from responses\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV data is not gzipped and encoded in utf-8.\n * const response = await fetch('https://example.com/data.csv');\n *\n * for await (const record of parse(response)) {\n * // ...\n * }\n * ```\n *\n * @example Parsing CSV files with options spcialized for binary\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * // This CSV data is gzipped and encoded in shift-jis and has BOM.\n * const response = await fetch('https://example.com/data.csv.gz');\n *\n * for await (const record of parse(response, {\n * charset: 'shift-jis',\n * ignoreBOM: true,\n * decomposition: 'gzip',\n * })) {\n * // ...\n * }\n * ```\n */\nexport function parse<const Header extends ReadonlyArray<string>>(\n csv: CSVBinary,\n options?: ParseBinaryOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport async function* parse<const Header extends ReadonlyArray<string>>(\n csv: CSV,\n options?: ParseBinaryOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n if (typeof csv === \"string\") {\n yield* parseString(csv, options);\n } else if (csv instanceof Uint8Array || csv instanceof ArrayBuffer) {\n yield* parseBinary(csv, options);\n } else if (csv instanceof ReadableStream) {\n const [branch1, branch2] = csv.tee();\n const reader1 = branch1.getReader();\n const { value: firstChunk } = await reader1.read();\n reader1.releaseLock();\n if (typeof firstChunk === \"string\") {\n yield* parseStringStream(branch2 as ReadableStream<string>, options);\n } else if (firstChunk instanceof Uint8Array) {\n yield* parseUint8ArrayStream(\n branch2 as ReadableStream<Uint8Array>,\n options,\n );\n }\n } else if (csv instanceof Response) {\n yield* parseResponse(csv, options);\n }\n}\n\nexport declare namespace parse {\n /**\n * Parse CSV string to array of records,\n * ideal for smaller data sets.\n *\n * @example Parse a CSV as array of records\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = await parse.toArray(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: CSVString,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string to array of records,\n * ideal for smaller data sets.\n *\n * @example Parse a CSV as array of records\n *\n * ```ts\n * import { parse } from 'web-csv-toolbox';\n *\n * const response = await fetch('https://example.com/data.csv');\n *\n * const records = await parse.toArray(response);\n * console.log(records);\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: CSVBinary,\n options?: ParseBinaryOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n}\n\nObject.defineProperties(parse, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n});\n"],"names":["internal.convertThisAsyncIterableIteratorToArray"],"mappings":";;;;;;;AAyLuB,gBAAA,KAAA,CACrB,KACA,OAC0C,EAAA;AAC1C,EAAI,IAAA,OAAO,QAAQ,QAAU,EAAA;AAC3B,IAAO,OAAA,WAAA,CAAY,KAAK,OAAO,CAAA,CAAA;AAAA,GACtB,MAAA,IAAA,GAAA,YAAe,UAAc,IAAA,GAAA,YAAe,WAAa,EAAA;AAClE,IAAO,OAAA,WAAA,CAAY,KAAK,OAAO,CAAA,CAAA;AAAA,GACjC,MAAA,IAAW,eAAe,cAAgB,EAAA;AACxC,IAAA,MAAM,CAAC,OAAA,EAAS,OAAO,CAAA,GAAI,IAAI,GAAI,EAAA,CAAA;AACnC,IAAM,MAAA,OAAA,GAAU,QAAQ,SAAU,EAAA,CAAA;AAClC,IAAA,MAAM,EAAE,KAAO,EAAA,UAAA,EAAe,GAAA,MAAM,QAAQ,IAAK,EAAA,CAAA;AACjD,IAAA,OAAA,CAAQ,WAAY,EAAA,CAAA;AACpB,IAAI,IAAA,OAAO,eAAe,QAAU,EAAA;AAClC,MAAO,OAAA,iBAAA,CAAkB,SAAmC,OAAO,CAAA,CAAA;AAAA,KACrE,MAAA,IAAW,sBAAsB,UAAY,EAAA;AAC3C,MAAO,OAAA,qBAAA;AAAA,QACL,OAAA;AAAA,QACA,OAAA;AAAA,OACF,CAAA;AAAA,KACF;AAAA,GACF,MAAA,IAAW,eAAe,QAAU,EAAA;AAClC,IAAO,OAAA,aAAA,CAAc,KAAK,OAAO,CAAA,CAAA;AAAA,GACnC;AACF,CAAA;AA+CA,MAAA,CAAO,iBAAiB,KAAO,EAAA;AAAA,EAC7B,OAAS,EAAA;AAAA,IACP,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,OAAOA,uCAAS;AAAA,GAClB;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseString.js","sources":["../../src/parseString.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport { parseStringToArraySync } from \"./parseStringToArraySync.ts\";\nimport { parseStringToIterableIterator } from \"./parseStringToIterableIterator.ts\";\nimport { parseStringToStream } from \"./parseStringToStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\n\n/**\n * Parse CSV string to records.\n *\n * @category Middle-level API\n * @param csv CSV string to parse\n * @param options Parsing options. See {@link ParseOptions}.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseString.toArray} function.\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parseString(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport async function* parseString<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n try {\n yield* parseStringToIterableIterator(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\nexport declare namespace parseString {\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = await parseString.toArray(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = parseString.toArraySync(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArraySync<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): CSVRecord<Header>[];\n /**\n * Parse CSV string to records.\n *\n * @returns Async iterable iterator of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for (const record of parseString.toIterableIterator(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toIterableIterator<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): IterableIterator<CSVRecord<Header>>;\n /**\n * Parse CSV string to records.\n *\n * @returns Readable stream of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * await parseString.toStream(csv)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\nObject.defineProperties(parseString, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toArraySync: {\n enumerable: true,\n writable: false,\n value: parseStringToArraySync,\n },\n toIterableIterator: {\n enumerable: true,\n writable: false,\n value: parseStringToIterableIterator,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringToStream,\n },\n});\n"],"names":["internal.convertThisAsyncIterableIteratorToArray"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"parseString.js","sources":["../../src/parseString.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { commonParseErrorHandling } from \"./commonParseErrorHandling.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseStringToArraySync } from \"./parseStringToArraySync.ts\";\nimport { parseStringToIterableIterator } from \"./parseStringToIterableIterator.ts\";\nimport { parseStringToStream } from \"./parseStringToStream.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV string to records.\n *\n * @category Middle-level API\n * @param csv CSV string to parse\n * @param options Parsing options. See {@link ParseOptions}.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseString.toArray} function.\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for await (const record of parseString(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parseString<const CSVSource extends string>(\n csv: CSVSource,\n): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;\nexport function parseString<const Header extends ReadonlyArray<string>>(\n csv: string,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString<const Header extends ReadonlyArray<string>>(\n csv: string,\n options: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options?: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseString(\n csv: string,\n options?: ParseOptions,\n): AsyncIterableIterator<CSVRecord<string[]>>;\nexport async function* parseString<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n try {\n yield* parseStringToIterableIterator(csv, options);\n } catch (error) {\n commonParseErrorHandling(error);\n }\n}\nexport declare namespace parseString {\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = await parseString.toArray(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const records = parseString.toArraySync(csv);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArraySync<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): CSVRecord<Header>[];\n /**\n * Parse CSV string to records.\n *\n * @returns Async iterable iterator of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * for (const record of parseString.toIterableIterator(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toIterableIterator<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): IterableIterator<CSVRecord<Header>>;\n /**\n * Parse CSV string to records.\n *\n * @returns Readable stream of records\n *\n * @example\n * ```ts\n * import { parseString } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * await parseString.toStream(csv)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n csv: string,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\nObject.defineProperties(parseString, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toArraySync: {\n enumerable: true,\n writable: false,\n value: parseStringToArraySync,\n },\n toIterableIterator: {\n enumerable: true,\n writable: false,\n value: parseStringToIterableIterator,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringToStream,\n },\n});\n"],"names":["internal.convertThisAsyncIterableIteratorToArray"],"mappings":";;;;;;AA8DuB,gBAAA,WAAA,CACrB,KACA,OAC0C,EAAA;AAC1C,EAAI,IAAA;AACF,IAAO,OAAA,6BAAA,CAA8B,KAAK,OAAO,CAAA,CAAA;AAAA,WAC1C,KAAO,EAAA;AACd,IAAA,wBAAA,CAAyB,KAAK,CAAA,CAAA;AAAA,GAChC;AACF,CAAA;AAyGA,MAAA,CAAO,iBAAiB,WAAa,EAAA;AAAA,EACnC,OAAS,EAAA;AAAA,IACP,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,OAAOA,uCAAS;AAAA,GAClB;AAAA,EACA,WAAa,EAAA;AAAA,IACX,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,KAAO,EAAA,sBAAA;AAAA,GACT;AAAA,EACA,kBAAoB,EAAA;AAAA,IAClB,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,KAAO,EAAA,6BAAA;AAAA,GACT;AAAA,EACA,QAAU,EAAA;AAAA,IACR,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,KAAO,EAAA,mBAAA;AAAA,GACT;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringStream.js","sources":["../../src/parseStringStream.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { parseStringStreamToStream } from \"./parseStringStreamToStream.ts\";\nimport { convertStreamToAsyncIterableIterator } from \"./utils/convertStreamToAsyncIterableIterator.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\n\n/**\n * Parse CSV string stream to records.\n *\n * @category Middle-level API\n * @param stream CSV string stream to parse\n * @param options Parsing options.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseStringStream.toArray} function.\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * for await (const record of parseStringStream(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parseStringStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n const recordStream = parseStringStreamToStream(stream, options);\n return convertStreamToAsyncIterableIterator(recordStream);\n}\n\nexport declare namespace parseStringStream {\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * const records = await parseStringStream.toArray(stream);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * await parseStringStream.toStream(stream)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\n\nObject.defineProperties(parseStringStream, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringStreamToStream,\n },\n});\n"],"names":["internal.convertThisAsyncIterableIteratorToArray"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"parseStringStream.js","sources":["../../src/parseStringStream.ts"],"sourcesContent":["import type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { parseStringStreamToStream } from \"./parseStringStreamToStream.ts\";\nimport { convertStreamToAsyncIterableIterator } from \"./utils/convertStreamToAsyncIterableIterator.ts\";\nimport * as internal from \"./utils/convertThisAsyncIterableIteratorToArray.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\n/**\n * Parse CSV string stream to records.\n *\n * @category Middle-level API\n * @param stream CSV string stream to parse\n * @param options Parsing options.\n * @returns Async iterable iterator of records.\n *\n * If you want array of records, use {@link parseStringStream.toArray} function.\n *\n * @example Parsing CSV files from strings\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * for await (const record of parseStringStream(csv)) {\n * console.log(record);\n * }\n * // Prints:\n * // { name: 'Alice', age: '42' }\n * // { name: 'Bob', age: '69' }\n * ```\n */\nexport function parseStringStream<\n const CSVSource extends ReadableStream<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<\n const CSVSource extends ReadableStream<string>,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n csv: CSVSource,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<const Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>>;\nexport function parseStringStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): AsyncIterableIterator<CSVRecord<Header>> {\n const recordStream = parseStringStreamToStream(stream, options);\n return convertStreamToAsyncIterableIterator(recordStream);\n}\n\nexport declare namespace parseStringStream {\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * const records = await parseStringStream.toArray(stream);\n * console.log(records);\n * // Prints:\n * // [ { name: 'Alice', age: '42' }, { name: 'Bob', age: '69' } ]\n * ```\n */\n export function toArray<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): Promise<CSVRecord<Header>[]>;\n /**\n * Parse CSV string stream to records.\n *\n * @returns Array of records\n *\n * @example\n *\n * ```ts\n * import { parseStringStream } from 'web-csv-toolbox';\n *\n * const csv = `name,age\n * Alice,42\n * Bob,69`;\n *\n * const stream = new ReadableStream({\n * start(controller) {\n * controller.enqueue(csv);\n * controller.close();\n * },\n * });\n *\n * await parseStringStream.toStream(stream)\n * .pipeTo(\n * new WritableStream({\n * write(record) {\n * console.log(record);\n * },\n * }),\n * );\n * ```\n */\n export function toStream<Header extends ReadonlyArray<string>>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n ): ReadableStream<CSVRecord<Header>>;\n}\n\nObject.defineProperties(parseStringStream, {\n toArray: {\n enumerable: true,\n writable: false,\n value: internal.convertThisAsyncIterableIteratorToArray,\n },\n toStream: {\n enumerable: true,\n writable: false,\n value: parseStringStreamToStream,\n },\n});\n"],"names":["internal.convertThisAsyncIterableIteratorToArray"],"mappings":";;;;AAiEgB,SAAA,iBAAA,CACd,QACA,OAC0C,EAAA;AAC1C,EAAM,MAAA,YAAA,GAAe,yBAA0B,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAC9D,EAAA,OAAO,qCAAqC,YAAY,CAAA,CAAA;AAC1D,CAAA;AAuEA,MAAA,CAAO,iBAAiB,iBAAmB,EAAA;AAAA,EACzC,OAAS,EAAA;AAAA,IACP,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,OAAOA,uCAAS;AAAA,GAClB;AAAA,EACA,QAAU,EAAA;AAAA,IACR,UAAY,EAAA,IAAA;AAAA,IACZ,QAAU,EAAA,KAAA;AAAA,IACV,KAAO,EAAA,yBAAA;AAAA,GACT;AACF,CAAC,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringStreamToStream.js","sources":["../../src/parseStringStreamToStream.ts"],"sourcesContent":["import { LexerTransformer } from \"./LexerTransformer.ts\";\nimport { RecordAssemblerTransformer } from \"./RecordAssemblerTransformer.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport { pipeline } from \"./utils/pipeline.ts\";\n\nexport function parseStringStreamToStream<Header extends ReadonlyArray<string
|
|
1
|
+
{"version":3,"file":"parseStringStreamToStream.js","sources":["../../src/parseStringStreamToStream.ts"],"sourcesContent":["import { LexerTransformer } from \"./LexerTransformer.ts\";\nimport { RecordAssemblerTransformer } from \"./RecordAssemblerTransformer.ts\";\nimport type { CSVRecord, ParseOptions } from \"./common/types.ts\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport { pipeline } from \"./utils/pipeline.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringStreamToStream<\n const CSVSource extends ReadableStream<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n stream: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const CSVSource extends ReadableStream<string>,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n stream: CSVSource,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const Header extends ReadonlyArray<string>,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringStreamToStream<\n const Header extends ReadonlyArray<string>,\n>(\n stream: ReadableStream<string>,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>> {\n return pipeline(\n stream,\n new LexerTransformer(options),\n new RecordAssemblerTransformer(options),\n );\n}\n"],"names":[],"mappings":";;;;AAiCgB,SAAA,yBAAA,CAGd,QACA,OACmC,EAAA;AACnC,EAAO,OAAA,QAAA;AAAA,IACL,MAAA;AAAA,IACA,IAAI,iBAAiB,OAAO,CAAA;AAAA,IAC5B,IAAI,2BAA2B,OAAO,CAAA;AAAA,GACxC,CAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToArraySync.js","sources":["../../src/parseStringToArraySync.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 parseStringToArraySync
|
|
1
|
+
{"version":3,"file":"parseStringToArraySync.js","sources":["../../src/parseStringToArraySync.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\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringToArraySync<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const CSVSource extends string,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(csv: CSVSource, options?: ParseOptions<Header>): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const Header extends ReadonlyArray<string>,\n>(csv: string, options?: ParseOptions<Header>): CSVRecord<Header>[];\nexport function parseStringToArraySync<\n const Header extends ReadonlyArray<string>,\n>(csv: string, options?: ParseOptions<Header>): 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":";;;;AA2BgB,SAAA,sBAAA,CAEd,KAAa,OAAqD,EAAA;AAClE,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,IAAA,OAAO,CAAC,GAAG,SAAU,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,CAAA;AAAA,WAC9B,KAAO,EAAA;AACd,IAAA,wBAAA,CAAyB,KAAK,CAAA,CAAA;AAAA,GAChC;AACF;;;;"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { parseStringToArraySync } from './_virtual/_web-csv-toolbox-wasm.js';
|
|
2
2
|
import { assertCommonOptions } from './assertCommonOptions.js';
|
|
3
|
-
import {
|
|
4
|
-
import { DOUBLE_QUOTE, COMMA } from './constants.js';
|
|
3
|
+
import { DOUBLE_QUOTE, DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.js';
|
|
5
4
|
|
|
6
5
|
function parseStringToArraySyncWASM(csv, options = {}) {
|
|
7
|
-
const { delimiter =
|
|
6
|
+
const { delimiter = DEFAULT_DELIMITER, quotation = DEFAULT_QUOTATION } = options;
|
|
8
7
|
if (typeof delimiter !== "string" || delimiter.length !== 1) {
|
|
9
|
-
throw new
|
|
8
|
+
throw new RangeError(
|
|
10
9
|
"Invalid delimiter, must be a single character on WASM."
|
|
11
10
|
);
|
|
12
11
|
}
|
|
13
12
|
if (quotation !== DOUBLE_QUOTE) {
|
|
14
|
-
throw new
|
|
15
|
-
"Invalid quotation, must be double quote on WASM."
|
|
16
|
-
);
|
|
13
|
+
throw new RangeError("Invalid quotation, must be double quote on WASM.");
|
|
17
14
|
}
|
|
18
15
|
assertCommonOptions({ delimiter, quotation });
|
|
19
16
|
const demiliterCode = delimiter.charCodeAt(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseStringToArraySyncWASM.js","sources":["../../src/parseStringToArraySyncWASM.ts"],"sourcesContent":["import { parseStringToArraySync } from \"web-csv-toolbox-wasm\";\nimport { assertCommonOptions } from \"./assertCommonOptions.ts\";\nimport {
|
|
1
|
+
{"version":3,"file":"parseStringToArraySyncWASM.js","sources":["../../src/parseStringToArraySyncWASM.ts"],"sourcesContent":["import { parseStringToArraySync } from \"web-csv-toolbox-wasm\";\nimport { assertCommonOptions } from \"./assertCommonOptions.ts\";\nimport type { CSVRecord, CommonOptions } from \"./common/types.ts\";\nimport {\n DEFAULT_DELIMITER,\n DEFAULT_QUOTATION,\n DOUBLE_QUOTE,\n} from \"./constants.ts\";\nimport type { loadWASM } from \"./loadWASM.ts\";\nimport type { PickCSVHeader } from \"./utils/types.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 * @throws {RangeError | TypeError} - If provided options are invalid.\n */\nexport function parseStringToArraySyncWASM<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n csv: CSVSource,\n options: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n csv: CSVSource,\n options?: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const Header extends ReadonlyArray<string>,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options?: CommonOptions<Delimiter, Quotation>,\n): CSVRecord<Header>[];\nexport function parseStringToArraySyncWASM<\n const Header extends readonly string[],\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n>(\n csv: string,\n options: CommonOptions<Delimiter, Quotation> = {},\n): CSVRecord<Header>[] {\n const { delimiter = DEFAULT_DELIMITER, quotation = DEFAULT_QUOTATION } =\n options;\n if (typeof delimiter !== \"string\" || delimiter.length !== 1) {\n throw new RangeError(\n \"Invalid delimiter, must be a single character on WASM.\",\n );\n }\n if (quotation !== DOUBLE_QUOTE) {\n throw new RangeError(\"Invalid quotation, must be double quote on WASM.\");\n }\n assertCommonOptions({ delimiter, quotation });\n const demiliterCode = delimiter.charCodeAt(0);\n return JSON.parse(parseStringToArraySync(csv, demiliterCode));\n}\n"],"names":[],"mappings":";;;;AA6EO,SAAS,0BAKd,CAAA,GAAA,EACA,OAA+C,GAAA,EAC1B,EAAA;AACrB,EAAA,MAAM,EAAE,SAAA,GAAY,iBAAmB,EAAA,SAAA,GAAY,mBACjD,GAAA,OAAA,CAAA;AACF,EAAA,IAAI,OAAO,SAAA,KAAc,QAAY,IAAA,SAAA,CAAU,WAAW,CAAG,EAAA;AAC3D,IAAA,MAAM,IAAI,UAAA;AAAA,MACR,wDAAA;AAAA,KACF,CAAA;AAAA,GACF;AACA,EAAA,IAAI,cAAc,YAAc,EAAA;AAC9B,IAAM,MAAA,IAAI,WAAW,kDAAkD,CAAA,CAAA;AAAA,GACzE;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 +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\";\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":";;;;
|
|
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\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringToIterableIterator<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n stream: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): IterableIterator<CSVRecord<Header>>;\nexport function parseStringToIterableIterator<\n const CSVSource extends string,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n stream: CSVSource,\n options?: ParseOptions<Header>,\n): IterableIterator<CSVRecord<Header>>;\nexport function parseStringToIterableIterator<\n const Header extends ReadonlyArray<string>,\n>(\n stream: string,\n options?: ParseOptions<Header>,\n): IterableIterator<CSVRecord<Header>>;\nexport function parseStringToIterableIterator<\n const 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":";;;;AAiCgB,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 +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\";\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":";;;;
|
|
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\";\nimport type { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from \"./constants.ts\";\nimport type { PickCSVHeader } from \"./utils/types.ts\";\n\nexport function parseStringToStream<\n const CSVSource extends string,\n const Delimiter extends string = DEFAULT_DELIMITER,\n const Quotation extends string = DEFAULT_QUOTATION,\n const Header extends ReadonlyArray<string> = PickCSVHeader<\n CSVSource,\n Delimiter,\n Quotation\n >,\n>(\n stream: CSVSource,\n options: ParseOptions<Header, Delimiter, Quotation>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringToStream<\n const CSVSource extends string,\n const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>,\n>(\n stream: CSVSource,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringToStream<const Header extends ReadonlyArray<string>>(\n stream: string,\n options?: ParseOptions<Header>,\n): ReadableStream<CSVRecord<Header>>;\nexport function parseStringToStream<const 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":";;;;AA+BgB,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;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Field, FieldDelimiter, RecordDelimiter } from './common/constants.js';
|
|
2
|
-
export {
|
|
2
|
+
export { ParseError } from './common/errors.js';
|
|
3
3
|
export { LexerTransformer } from './LexerTransformer.js';
|
|
4
4
|
export { loadWASM } from './loadWASM.js';
|
|
5
5
|
export { parse } from './parse.js';
|
package/dist/types/Lexer.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { AbortSignalOptions, CommonOptions, Token } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* CSV Lexer.
|
|
5
6
|
*
|
|
6
7
|
* Lexter tokenizes CSV data into fields and records.
|
|
7
8
|
*/
|
|
8
|
-
export declare class Lexer {
|
|
9
|
+
export declare class Lexer<Delimiter extends string = DEFAULT_DELIMITER, Quotation extends string = DEFAULT_QUOTATION> {
|
|
9
10
|
#private;
|
|
10
11
|
/**
|
|
11
12
|
* Constructs a new Lexer instance.
|
|
12
13
|
* @param options - The common options for the lexer.
|
|
13
14
|
*/
|
|
14
|
-
constructor(
|
|
15
|
+
constructor(options?: CommonOptions<Delimiter, Quotation> & AbortSignalOptions);
|
|
15
16
|
/**
|
|
16
17
|
* Lexes the given chunk of CSV data.
|
|
17
18
|
* @param chunk - The chunk of CSV data to be lexed.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Lexer } from './Lexer.ts';
|
|
2
2
|
import { CommonOptions, Token } from './common/types.ts';
|
|
3
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* A transform stream that converts a stream of tokens into a stream of rows.
|
|
@@ -31,7 +32,7 @@ import { CommonOptions, Token } from './common/types.ts';
|
|
|
31
32
|
* // { type: RecordDelimiter, value: "\r\n", location: {...} }
|
|
32
33
|
* ```
|
|
33
34
|
*/
|
|
34
|
-
export declare class LexerTransformer extends TransformStream<string, Token[]> {
|
|
35
|
-
readonly lexer: Lexer
|
|
36
|
-
constructor(options?: CommonOptions);
|
|
35
|
+
export declare class LexerTransformer<Delimiter extends string = DEFAULT_DELIMITER, Quotation extends string = DEFAULT_QUOTATION> extends TransformStream<string, Token[]> {
|
|
36
|
+
readonly lexer: Lexer<Delimiter, Quotation>;
|
|
37
|
+
constructor(options?: CommonOptions<Delimiter, Quotation>);
|
|
37
38
|
}
|
|
@@ -16,7 +16,7 @@ import { CommonOptions } from './common/types.ts';
|
|
|
16
16
|
* ```
|
|
17
17
|
*
|
|
18
18
|
* @param options - The options object to be validated.
|
|
19
|
-
* @throws {
|
|
19
|
+
* @throws {RangeError} If any required property is missing or if the delimiter is the same as the quotation.
|
|
20
20
|
* @throws {TypeError} If any required property is not a string.
|
|
21
21
|
*/
|
|
22
|
-
export declare function assertCommonOptions(options: Required<CommonOptions
|
|
22
|
+
export declare function assertCommonOptions<Delimiter extends string, Quotation extends string>(options: Required<CommonOptions<Delimiter, Quotation>>): asserts options is Required<CommonOptions<Delimiter, Quotation>>;
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { Position } from './types.js';
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* Error class for invalid option errors.
|
|
5
|
-
*/
|
|
6
|
-
export declare class InvalidOptionError extends Error {
|
|
7
|
-
constructor(message?: string, options?: ErrorOptions);
|
|
8
|
-
}
|
|
9
3
|
/**
|
|
10
4
|
* Options for creating a parse error.
|
|
11
5
|
*/
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from '../constants.ts';
|
|
2
|
+
import { Join } from '../utils/types.ts';
|
|
1
3
|
import { Field, FieldDelimiter, RecordDelimiter } from './constants.ts';
|
|
2
4
|
|
|
3
5
|
/**
|
|
@@ -131,7 +133,7 @@ export interface AbortSignalOptions {
|
|
|
131
133
|
* CSV Common Options.
|
|
132
134
|
* @category Types
|
|
133
135
|
*/
|
|
134
|
-
export interface CommonOptions {
|
|
136
|
+
export interface CommonOptions<Delimiter extends string, Quotation extends string> {
|
|
135
137
|
/**
|
|
136
138
|
* CSV field delimiter.
|
|
137
139
|
* If you want to parse TSV, specify `'\t'`.
|
|
@@ -147,13 +149,13 @@ export interface CommonOptions {
|
|
|
147
149
|
*
|
|
148
150
|
* @default ','
|
|
149
151
|
*/
|
|
150
|
-
delimiter?:
|
|
152
|
+
delimiter?: Delimiter;
|
|
151
153
|
/**
|
|
152
154
|
* CSV field quotation.
|
|
153
155
|
*
|
|
154
156
|
* @default '"'
|
|
155
157
|
*/
|
|
156
|
-
quotation?:
|
|
158
|
+
quotation?: Quotation;
|
|
157
159
|
}
|
|
158
160
|
/**
|
|
159
161
|
* CSV Parsing Options for binary.
|
|
@@ -238,7 +240,7 @@ export interface RecordAssemblerOptions<Header extends ReadonlyArray<string>> ex
|
|
|
238
240
|
* Parse options for CSV string.
|
|
239
241
|
* @category Types
|
|
240
242
|
*/
|
|
241
|
-
export interface ParseOptions<Header extends ReadonlyArray<string
|
|
243
|
+
export interface ParseOptions<Header extends ReadonlyArray<string> = ReadonlyArray<string>, Delimiter extends string = DEFAULT_DELIMITER, Quotation extends string = DEFAULT_QUOTATION> extends CommonOptions<Delimiter, Quotation>, RecordAssemblerOptions<Header>, AbortSignalOptions {
|
|
242
244
|
}
|
|
243
245
|
/**
|
|
244
246
|
* Parse options for CSV binary.
|
|
@@ -265,7 +267,7 @@ export type CSVRecord<Header extends ReadonlyArray<string>> = Record<Header[numb
|
|
|
265
267
|
*
|
|
266
268
|
* @category Types
|
|
267
269
|
*/
|
|
268
|
-
export type CSVString = string | ReadableStream<string>;
|
|
270
|
+
export type CSVString<Header extends ReadonlyArray<string> = [], Delimiter extends string = DEFAULT_DELIMITER, Quotation extends string = DEFAULT_QUOTATION> = Header extends readonly [string, ...string[]] ? Join<Header, Delimiter, Quotation> | ReadableStream<Join<Header, Delimiter, Quotation>> : string | ReadableStream<string>;
|
|
269
271
|
/**
|
|
270
272
|
* CSV Binary.
|
|
271
273
|
*
|
|
@@ -277,4 +279,4 @@ export type CSVBinary = ReadableStream<Uint8Array> | Response | ArrayBuffer | Ui
|
|
|
277
279
|
*
|
|
278
280
|
* @category Types
|
|
279
281
|
*/
|
|
280
|
-
export type CSV = CSVString | CSVBinary
|
|
282
|
+
export type CSV<Header extends ReadonlyArray<string> = [], Delimiter extends string = DEFAULT_DELIMITER, Quotation extends string = DEFAULT_QUOTATION> = Header extends [] ? CSVString | CSVBinary : CSVString<Header, Delimiter, Quotation>;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @param error - The error to handle.
|
|
5
5
|
* @throws {ParseError} When an error occurs while parsing the CSV data.
|
|
6
|
-
* @throws {
|
|
6
|
+
* @throws {RangeError} When an invalid option is provided.
|
|
7
|
+
* @throws {TypeError} When an invalid option is provided.
|
|
7
8
|
*/
|
|
8
9
|
export declare function commonParseErrorHandling(error: unknown): never;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
export declare const CR = "\r";
|
|
2
|
+
export type CR = typeof CR;
|
|
2
3
|
export declare const CRLF = "\r\n";
|
|
4
|
+
export type CRLF = typeof CRLF;
|
|
3
5
|
export declare const LF = "\n";
|
|
6
|
+
export type LF = typeof LF;
|
|
7
|
+
export type Newline = CRLF | CR | LF;
|
|
4
8
|
/**
|
|
5
9
|
* COMMA is a symbol for comma(,).
|
|
6
10
|
*/
|
|
@@ -9,3 +13,7 @@ export declare const COMMA = ",";
|
|
|
9
13
|
* DOUBLE_QUOTE is a symbol for double quote(").
|
|
10
14
|
*/
|
|
11
15
|
export declare const DOUBLE_QUOTE = "\"";
|
|
16
|
+
export declare const DEFAULT_DELIMITER = ",";
|
|
17
|
+
export type DEFAULT_DELIMITER = typeof DEFAULT_DELIMITER;
|
|
18
|
+
export declare const DEFAULT_QUOTATION = "\"";
|
|
19
|
+
export type DEFAULT_QUOTATION = typeof DEFAULT_QUOTATION;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CommonOptions } from './common/types.ts';
|
|
2
2
|
|
|
3
|
-
export interface EscapeFieldOptions extends CommonOptions {
|
|
3
|
+
export interface EscapeFieldOptions<Delimiter extends string, Quotation extends string> extends CommonOptions<Delimiter, Quotation> {
|
|
4
4
|
quote?: true;
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
@@ -11,4 +11,4 @@ export interface EscapeFieldOptions extends CommonOptions {
|
|
|
11
11
|
* @param options The options.
|
|
12
12
|
* @returns The escaped field.
|
|
13
13
|
*/
|
|
14
|
-
export declare function escapeField
|
|
14
|
+
export declare function escapeField<const Delimiter extends string, const Quotation extends string>(value: string, options?: EscapeFieldOptions<Delimiter, Quotation>): string;
|
package/dist/types/parse.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CSVBinary, CSVRecord, CSVString, ParseBinaryOptions, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Parse CSV to records.
|
|
@@ -105,7 +107,10 @@ import { CSVBinary, CSVRecord, CSVString, ParseBinaryOptions, ParseOptions } fro
|
|
|
105
107
|
* // { name: 'Bob', age: '69' }
|
|
106
108
|
* ```
|
|
107
109
|
*/
|
|
108
|
-
export declare function parse<
|
|
110
|
+
export declare function parse<const CSVSource extends CSVString>(csv: CSVSource): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;
|
|
111
|
+
export declare function parse<const Header extends ReadonlyArray<string>>(csv: CSVString): AsyncIterableIterator<CSVRecord<Header>>;
|
|
112
|
+
export declare function parse<const Header extends ReadonlyArray<string>>(csv: CSVString, options: ParseOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
113
|
+
export declare function parse<const CSVSource extends CSVString, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(csv: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
109
114
|
/**
|
|
110
115
|
* Parse CSV binary to records.
|
|
111
116
|
*
|
|
@@ -142,7 +147,7 @@ export declare function parse<Header extends ReadonlyArray<string>>(csv: CSVStri
|
|
|
142
147
|
* }
|
|
143
148
|
* ```
|
|
144
149
|
*/
|
|
145
|
-
export declare function parse<Header extends ReadonlyArray<string>>(csv: CSVBinary, options?: ParseBinaryOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
150
|
+
export declare function parse<const Header extends ReadonlyArray<string>>(csv: CSVBinary, options?: ParseBinaryOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
146
151
|
export declare namespace parse {
|
|
147
152
|
/**
|
|
148
153
|
* Parse CSV string to array of records,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Parse CSV string to records.
|
|
@@ -26,7 +28,11 @@ import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
|
26
28
|
* // { name: 'Bob', age: '69' }
|
|
27
29
|
* ```
|
|
28
30
|
*/
|
|
29
|
-
export declare function parseString<
|
|
31
|
+
export declare function parseString<const CSVSource extends string>(csv: CSVSource): AsyncIterableIterator<CSVRecord<PickCSVHeader<CSVSource>>>;
|
|
32
|
+
export declare function parseString<const Header extends ReadonlyArray<string>>(csv: string): AsyncIterableIterator<CSVRecord<Header>>;
|
|
33
|
+
export declare function parseString<const Header extends ReadonlyArray<string>>(csv: string, options: ParseOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
34
|
+
export declare function parseString<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(csv: CSVSource, options?: ParseOptions<Header, Delimiter, Quotation>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
35
|
+
export declare function parseString(csv: string, options?: ParseOptions): AsyncIterableIterator<CSVRecord<string[]>>;
|
|
30
36
|
export declare namespace parseString {
|
|
31
37
|
/**
|
|
32
38
|
* Parse CSV string to records.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Parse CSV string stream to records.
|
|
@@ -34,7 +36,9 @@ import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
|
34
36
|
* // { name: 'Bob', age: '69' }
|
|
35
37
|
* ```
|
|
36
38
|
*/
|
|
37
|
-
export declare function parseStringStream<Header extends ReadonlyArray<string>>(
|
|
39
|
+
export declare function parseStringStream<const CSVSource extends ReadableStream<string>, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(csv: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
40
|
+
export declare function parseStringStream<const CSVSource extends ReadableStream<string>, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(csv: CSVSource, options?: ParseOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
41
|
+
export declare function parseStringStream<const Header extends ReadonlyArray<string>>(stream: ReadableStream<string>, options?: ParseOptions<Header>): AsyncIterableIterator<CSVRecord<Header>>;
|
|
38
42
|
export declare namespace parseStringStream {
|
|
39
43
|
/**
|
|
40
44
|
* Parse CSV string stream to records.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
|
-
export declare function parseStringStreamToStream<Header extends ReadonlyArray<string>>(stream:
|
|
5
|
+
export declare function parseStringStreamToStream<const CSVSource extends ReadableStream<string>, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(stream: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): ReadableStream<CSVRecord<Header>>;
|
|
6
|
+
export declare function parseStringStreamToStream<const CSVSource extends ReadableStream<string>, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(stream: CSVSource, options?: ParseOptions<Header>): ReadableStream<CSVRecord<Header>>;
|
|
7
|
+
export declare function parseStringStreamToStream<const Header extends ReadonlyArray<string>>(stream: ReadableStream<string>, options?: ParseOptions<Header>): ReadableStream<CSVRecord<Header>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
|
-
export declare function parseStringToArraySync<Header extends ReadonlyArray<string>>(csv:
|
|
5
|
+
export declare function parseStringToArraySync<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(csv: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): CSVRecord<Header>[];
|
|
6
|
+
export declare function parseStringToArraySync<const CSVSource extends string, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(csv: CSVSource, options?: ParseOptions<Header>): CSVRecord<Header>[];
|
|
7
|
+
export declare function parseStringToArraySync<const Header extends ReadonlyArray<string>>(csv: string, options?: ParseOptions<Header>): CSVRecord<Header>[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { CSVRecord, CommonOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
5
|
/**
|
|
4
6
|
* Parse CSV string to record of arrays.
|
|
@@ -34,5 +36,8 @@ import { CSVRecord, CommonOptions } from './common/types.ts';
|
|
|
34
36
|
* // [{ a: "1", b: "2", c: "3" }]
|
|
35
37
|
* ```
|
|
36
38
|
* @beta
|
|
39
|
+
* @throws {RangeError | TypeError} - If provided options are invalid.
|
|
37
40
|
*/
|
|
38
|
-
export declare function parseStringToArraySyncWASM<
|
|
41
|
+
export declare function parseStringToArraySyncWASM<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(csv: CSVSource, options: CommonOptions<Delimiter, Quotation>): CSVRecord<Header>[];
|
|
42
|
+
export declare function parseStringToArraySyncWASM<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(csv: CSVSource, options?: CommonOptions<Delimiter, Quotation>): CSVRecord<Header>[];
|
|
43
|
+
export declare function parseStringToArraySyncWASM<const Header extends ReadonlyArray<string>, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION>(csv: string, options?: CommonOptions<Delimiter, Quotation>): CSVRecord<Header>[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
|
-
export declare function parseStringToIterableIterator<Header extends ReadonlyArray<string>>(
|
|
5
|
+
export declare function parseStringToIterableIterator<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(stream: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): IterableIterator<CSVRecord<Header>>;
|
|
6
|
+
export declare function parseStringToIterableIterator<const CSVSource extends string, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(stream: CSVSource, options?: ParseOptions<Header>): IterableIterator<CSVRecord<Header>>;
|
|
7
|
+
export declare function parseStringToIterableIterator<const Header extends ReadonlyArray<string>>(stream: string, options?: ParseOptions<Header>): IterableIterator<CSVRecord<Header>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { CSVRecord, ParseOptions } from './common/types.ts';
|
|
2
|
+
import { DEFAULT_DELIMITER, DEFAULT_QUOTATION } from './constants.ts';
|
|
3
|
+
import { PickCSVHeader } from './utils/types.ts';
|
|
2
4
|
|
|
3
|
-
export declare function parseStringToStream<Header extends ReadonlyArray<string>>(
|
|
5
|
+
export declare function parseStringToStream<const CSVSource extends string, const Delimiter extends string = DEFAULT_DELIMITER, const Quotation extends string = DEFAULT_QUOTATION, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource, Delimiter, Quotation>>(stream: CSVSource, options: ParseOptions<Header, Delimiter, Quotation>): ReadableStream<CSVRecord<Header>>;
|
|
6
|
+
export declare function parseStringToStream<const CSVSource extends string, const Header extends ReadonlyArray<string> = PickCSVHeader<CSVSource>>(stream: CSVSource, options?: ParseOptions<Header>): ReadableStream<CSVRecord<Header>>;
|
|
7
|
+
export declare function parseStringToStream<const Header extends ReadonlyArray<string>>(stream: string, options?: ParseOptions<Header>): ReadableStream<CSVRecord<Header>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|