import { InferCSVRecord, ParseOptions } from '../../../core/types'; /** * Parse HTTP Response what contains CSV to records, * ideal for smaller data sets. * * @remarks * This function automatically treats response headers. * * - If `Content-Type` header is not set, it assumes `text/csv`. * - If `Content-Type` header is not `text/csv`, it throws an error. * - If `Content-Type` header has charset parameter, it uses it for decoding. * - If `Content-Encoding` header is set, it decompresses the response. * - Should there be any conflicting information between the header and the options, the option's value will take precedence. * * @category Middle-level API * @param response * @param options * @returns Async iterable iterator of records. * * If you want array of records, use {@link parseResponse.toArray} function. * * @example Parsing CSV Response * * ```ts * import { parseResponse } from 'web-csv-toolbox'; * * const response = await fetch('https://example.com/data.csv'); * * for await (const record of parseResponse(response)) { * console.log(record); * } * ``` */ export declare function parseResponse
, Options extends ParseOptions
= ParseOptions
>(response: Response, options?: Options): AsyncIterableIterator>; export declare namespace parseResponse { /** * Parse CSV Response to array of records. * * @returns Array of records * * @example Parsing CSV Response * * ```ts * import { parseResponse } from 'web-csv-toolbox'; * * const response = await fetch('https://example.com/data.csv'); * * const records = await parseResponse.toArray(response); * console.log(records); * ``` */ function toArray
, Options extends ParseOptions
= ParseOptions
>(response: Response, options?: Options): Promise[]>; /** * Parse CSV Response to stream of records. * * @param response Response to parse * @returns Stream of records * * @example Parsing CSV Response * * ```ts * import { parseResponse } from 'web-csv-toolbox'; * * const response = await fetch('https://example.com/data.csv'); * * await parseResponse.toStream(response) * .pipeTo( * new WritableStream({ * write(record) { * console.log(record); * }, * }), * ); * // Prints: * // { name: 'Alice', age: '42' } * // { name: 'Bob', age: '69' } * ``` */ function toStream
, Options extends ParseOptions
= ParseOptions
>(response: Response, options?: Options): ReadableStream>; }