@piadina/fetch-jsonl
Version:
Stream and parse (**JSON Lines**)[https://jsonlines.org/] directly with fetch. Yields parsed JSON objects one line at a time.
25 lines (24 loc) • 1.38 kB
TypeScript
export interface FetchJSONLOptions {
fetchImpl?: typeof fetch;
reviver?: Parameters<typeof JSON.parse>[1];
hooks?: {
beforeRequest?: Array<(request: Request) => Request | void | Promise<Request | void>>;
};
}
export declare class FetchJSONL {
#private;
private static instance;
private hooks;
constructor(options?: FetchJSONLOptions);
private parseJSON;
private applyBeforeRequestHooks;
stream<T = unknown, TError extends Error = Error>(input: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
get<T = unknown, TError extends Error = Error>(url: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
post<T = unknown, TError extends Error = Error>(url: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
put<T = unknown, TError extends Error = Error>(url: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
patch<T = unknown, TError extends Error = Error>(url: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
delete<T = unknown, TError extends Error = Error>(url: RequestInfo | URL, init?: RequestInit): AsyncGenerator<T, void, unknown>;
}
export declare const createInstance: (defaults?: FetchJSONLOptions) => FetchJSONL;
declare const fetchJSONL: FetchJSONL;
export default fetchJSONL;