@types/hapi__subtext
Version:
TypeScript definitions for @hapi/subtext
49 lines (41 loc) • 1.37 kB
TypeScript
/// <reference types="node" />
import { IncomingMessage } from "http";
import stream = require("stream");
import { BrotliOptions, ZlibOptions } from "zlib";
export interface MultipartOptions {
output: "data" | "stream" | "file";
}
export interface DecompressionOptions {
gzip?: ZlibOptions;
deflate?: ZlibOptions;
br?: BrotliOptions;
compress?: BrotliOptions;
}
export interface ContentDecoders {
gzip?: (options: ZlibOptions | null) => stream.Transform;
deflate?: (options: ZlibOptions | null) => stream.Transform;
br?: (options: BrotliOptions | null) => stream.Transform;
compress?: (options: BrotliOptions | null) => stream.Transform;
}
export interface Options {
parse: boolean;
output: "data" | "stream" | "file";
maxBytes?: number;
override?: string;
defaultContentType?: string;
allow?: string[];
timeout?: number;
querystring?: (str: string) => Partial<Record<string, string | string[]>>;
uploads?: string;
multipart?: boolean | MultipartOptions;
decoders?: ContentDecoders;
compression?: DecompressionOptions;
}
export interface Result {
/**
* Will be `null` if no payload was present on request
*/
payload: unknown;
mime: string;
}
export function parse(req: IncomingMessage, tap: null | NodeJS.WritableStream, options: Options): Promise<Result>;