@auth70/bodyguard
Version:
Fetch API compatible streaming JSON and form data body parser and guard
48 lines (47 loc) • 1.53 kB
TypeScript
import type { BodyguardConfig, BodyguardFormConfig, JSONLike } from './lib.js';
export interface Parser {
config: BodyguardConfig;
depth: number;
keyCount: number;
parse(stream: ReadableStream<Uint8Array>): Promise<JSONLike>;
}
export declare class TextParser implements Parser {
config: BodyguardConfig;
depth: number;
keyCount: number;
constructor(config: BodyguardConfig);
parse(stream: ReadableStream<Uint8Array>): Promise<JSONLike>;
}
export declare class JSONParser implements Parser {
config: BodyguardConfig;
depth: number;
keyCount: number;
constructor(config: BodyguardConfig);
parse(stream: ReadableStream<Uint8Array>): Promise<JSONLike>;
}
export declare class URLParamsParser implements Parser {
config: BodyguardConfig;
depth: number;
keyCount: number;
private state;
private currentKey;
private currentValue;
private EQUALS;
private AMPERSAND;
constructor(config: BodyguardConfig);
parse(stream: ReadableStream<Uint8Array>): Promise<JSONLike>;
parseStream(stream: ReadableStream<Uint8Array>): AsyncGenerator<{
key: string;
value: string;
keyCount: number;
}, void, unknown>;
}
export declare class FormDataParser implements Parser {
config: BodyguardFormConfig;
depth: number;
keyCount: number;
fileCount: number;
private boundary;
constructor(config: BodyguardFormConfig, boundary: string);
parse(stream: ReadableStream<Uint8Array>): Promise<JSONLike>;
}