web-csv-toolbox - v0.14.0
    Preparing search index...

    Interface CSVProcessingOptions<Header, Delimiter, Quotation>

    CSV processing specification options.

    Defines how CSV data should be processed, including parsing behavior, output format, and data handling strategies. This excludes execution strategy (worker, WASM, etc.) which is defined separately in EngineOptions.

    This type is used by low-level Parser classes that focus on CSV processing logic without concerning themselves with execution strategy. High-level APIs combine this with EngineOptions via ParseOptions.

    Included settings:

    • CSV syntax: delimiter, quotation, maxBufferSize
    • Record assembly: header, outputFormat, includeHeader, columnCountStrategy
    • Processing control: signal, source, maxFieldCount, skipEmptyLines

    Excluded settings:

    • Execution strategy: engine (worker, WASM configuration)
    const parser = new FlexibleStringObjectCSVParser({
    delimiter: ',',
    quotation: '"',
    header: ['name', 'age'],
    outputFormat: 'object',
    signal: abortController.signal,
    // engine is NOT available here
    });
    parseString(csv, {
    delimiter: ',',
    header: ['name', 'age'],
    // ↓ Also includes execution strategy
    engine: { worker: true }
    });
    interface CSVProcessingOptions<
        Header extends ReadonlyArray<string> = ReadonlyArray<string>,
        Delimiter extends string = DEFAULT_DELIMITER,
        Quotation extends string = DEFAULT_QUOTATION,
    > {
        columnCountStrategy?: ColumnCountStrategy;
        delimiter?: Delimiter;
        header?: Header;
        includeHeader?: boolean;
        maxBufferSize?: number;
        maxFieldCount?: number;
        outputFormat?: "object" | "array";
        quotation?: Quotation;
        signal?: AbortSignal;
        skipEmptyLines?: boolean;
        source?: string;
    }

    Type Parameters

    Hierarchy (View Summary)

    Index

    Properties

    columnCountStrategy?: ColumnCountStrategy
    delimiter?: Delimiter

    CSV field delimiter. If you want to parse TSV, specify '\t'.

    Detail restrictions are as follows:

    • Must not be empty
    • Must be a single character
      • Multi-byte characters are not supported
    • Must not include CR or LF
    • Must not be the same as the quotation
    ','
    
    header?: Header
    includeHeader?: boolean
    maxBufferSize?: number

    Maximum internal buffer size in characters.

    This option limits the size of the internal buffer used during lexing to prevent memory exhaustion attacks. The buffer size is measured in UTF-16 code units (JavaScript string length). When the buffer exceeds this limit, a RangeError will be thrown.

    Set to Infinity to disable the limit (not recommended for untrusted input).

    10 * 1024 * 1024 (approximately 10MB for ASCII, but may vary for non-ASCII)
    
    maxFieldCount?: number
    outputFormat?: "object" | "array"
    quotation?: Quotation

    CSV field quotation.

    '"'
    
    signal?: AbortSignal

    The signal to abort the operation.

    If the signal is aborted, the operation will be stopped.

    const controller = new AbortController();

    const csv = "foo,bar\n1,2\n3,4";
    try {
    const result = await parse(csv, { signal: controller.signal });
    } catch (e) {
    if (e instanceof DOMException && e.name === "AbortError") {
    console.log("Aborted");
    }
    }

    // Abort with user action
    document.getElementById("cancel-button")
    .addEventListener("click", () => {
    controller.abort();
    });
    const csv = "foo,bar\n1,2\n3,4";

    try {
    const result = await parse(csv, { signal: AbortSignal.timeout(1000) });
    } catch (e) {
    if (e instanceof DOMException && e.name === "TimeoutError") {
    console.log("Timeout");
    }
    }
    undefined
    
    skipEmptyLines?: boolean
    source?: string

    Source identifier for error reporting (e.g., filename, description).

    This option allows you to specify a human-readable identifier for the CSV source that will be included in error messages. This is particularly useful when parsing multiple files or streams to help identify which source caused an error.

    Security Note: Do not include sensitive information (API keys, tokens, full URLs) in this field as it may be exposed in error messages and logs.

    parseString(csv, { source: "users.csv" });
    // Error: Field count exceeded at row 5 in "users.csv"
    undefined