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

    Buffer

    Node.js Buffer objects are automatically supported (Buffer extends Uint8Array).

    Note: For WASM-enabled features in Node, Node.js 20.6+ is recommended (the WASM loader uses import.meta.resolve). On older Node versions, pass an explicit URL/Buffer to loadWASM().

    import { parseBinary } from 'web-csv-toolbox';
    import { readFile } from 'node:fs/promises';

    // Read file as Buffer
    const buffer = await readFile('data.csv');

    // Parse directly - Buffer is a Uint8Array subclass
    let count = 0;
    for await (const record of parseBinary(buffer)) {
    // Process record (e.g., save to database, validate, etc.)
    console.log(record);
    count++;
    }

    console.log(`Parsed ${count} records`);

    With encoding specification:

    import { parseBinary } from 'web-csv-toolbox';
    import { readFile } from 'node:fs/promises';

    // Read file as Buffer
    const buffer = await readFile('shift-jis.csv');

    // Specify charset
    let count = 0;
    for await (const record of parseBinary(buffer, { charset: 'shift-jis' })) {
    // Process record (e.g., save to database, validate, etc.)
    console.log(record);
    count++;
    }

    console.log(`Parsed ${count} records`);

    With compressed files:

    import { parseBinary } from 'web-csv-toolbox';
    import { readFile } from 'node:fs/promises';

    // Read gzip-compressed CSV
    const buffer = await readFile('data.csv.gz');

    // Parse with decompression
    let count = 0;
    for await (const record of parseBinary(buffer, { decompression: 'gzip' })) {
    // Process record (e.g., save to database, validate, etc.)
    console.log(record);
    count++;
    }

    console.log(`Parsed ${count} records from compressed file`);