164 lines
No EOL
9.6 KiB
TypeScript
164 lines
No EOL
9.6 KiB
TypeScript
// Type definitions for dicer 0.2
|
|
// Project: https://github.com/mscdex/dicer
|
|
// Definitions by: BendingBender <https://github.com/BendingBender>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
// TypeScript Version: 2.2
|
|
/// <reference types="node" />
|
|
|
|
import stream = require("stream");
|
|
|
|
// tslint:disable:unified-signatures
|
|
|
|
/**
|
|
* A very fast streaming multipart parser for node.js.
|
|
* Dicer is a WritableStream
|
|
*
|
|
* Dicer (special) events:
|
|
* - on('finish', ()) - Emitted when all parts have been parsed and the Dicer instance has been ended.
|
|
* - on('part', (stream: PartStream)) - Emitted when a new part has been found.
|
|
* - on('preamble', (stream: PartStream)) - Emitted for preamble if you should happen to need it (can usually be ignored).
|
|
* - on('trailer', (data: Buffer)) - Emitted when trailing data was found after the terminating boundary (as with the preamble, this can usually be ignored too).
|
|
*/
|
|
export class Dicer extends stream.Writable {
|
|
/**
|
|
* Creates and returns a new Dicer instance with the following valid config settings:
|
|
*
|
|
* @param config The configuration to use
|
|
*/
|
|
constructor(config: Dicer.Config);
|
|
/**
|
|
* Sets the boundary to use for parsing and performs some initialization needed for parsing.
|
|
* You should only need to use this if you set headerFirst to true in the constructor and are parsing the boundary from the preamble header.
|
|
*
|
|
* @param boundary The boundary to use
|
|
*/
|
|
setBoundary(boundary: string): void;
|
|
addListener(event: "finish", listener: () => void): this;
|
|
addListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
addListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
addListener(event: "trailer", listener: (data: Buffer) => void): this;
|
|
addListener(event: "close", listener: () => void): this;
|
|
addListener(event: "drain", listener: () => void): this;
|
|
addListener(event: "error", listener: (err: Error) => void): this;
|
|
addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
on(event: "finish", listener: () => void): this;
|
|
on(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
on(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
on(event: "trailer", listener: (data: Buffer) => void): this;
|
|
on(event: "close", listener: () => void): this;
|
|
on(event: "drain", listener: () => void): this;
|
|
on(event: "error", listener: (err: Error) => void): this;
|
|
on(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
on(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
once(event: "finish", listener: () => void): this;
|
|
once(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
once(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
once(event: "trailer", listener: (data: Buffer) => void): this;
|
|
once(event: "close", listener: () => void): this;
|
|
once(event: "drain", listener: () => void): this;
|
|
once(event: "error", listener: (err: Error) => void): this;
|
|
once(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
once(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
prependListener(event: "finish", listener: () => void): this;
|
|
prependListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
prependListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
prependListener(event: "trailer", listener: (data: Buffer) => void): this;
|
|
prependListener(event: "close", listener: () => void): this;
|
|
prependListener(event: "drain", listener: () => void): this;
|
|
prependListener(event: "error", listener: (err: Error) => void): this;
|
|
prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependOnceListener(event: "finish", listener: () => void): this;
|
|
prependOnceListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
prependOnceListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
prependOnceListener(event: "trailer", listener: (data: Buffer) => void): this;
|
|
prependOnceListener(event: "close", listener: () => void): this;
|
|
prependOnceListener(event: "drain", listener: () => void): this;
|
|
prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
|
prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
removeListener(event: "finish", listener: () => void): this;
|
|
removeListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
|
removeListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
|
removeListener(event: "trailer", listener: (data: Buffer) => void): this;
|
|
removeListener(event: "close", listener: () => void): this;
|
|
removeListener(event: "drain", listener: () => void): this;
|
|
removeListener(event: "error", listener: (err: Error) => void): this;
|
|
removeListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
|
removeListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
}
|
|
|
|
declare namespace Dicer {
|
|
interface Config {
|
|
/**
|
|
* This is the boundary used to detect the beginning of a new part.
|
|
*/
|
|
boundary?: string | undefined;
|
|
/**
|
|
* If true, preamble header parsing will be performed first.
|
|
*/
|
|
headerFirst?: boolean | undefined;
|
|
/**
|
|
* The maximum number of header key=>value pairs to parse Default: 2000 (same as node's http).
|
|
*/
|
|
maxHeaderPairs?: number | undefined;
|
|
}
|
|
|
|
/**
|
|
* PartStream is a _ReadableStream_
|
|
*
|
|
* PartStream (special) events:
|
|
* - on('header', (header: object)) - An object containing the header for this particular part. Each property value is an array of one or more string values.
|
|
*/
|
|
interface PartStream extends stream.Readable {
|
|
addListener(event: "header", listener: (header: object) => void): this;
|
|
addListener(event: "close", listener: () => void): this;
|
|
addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
addListener(event: "end", listener: () => void): this;
|
|
addListener(event: "readable", listener: () => void): this;
|
|
addListener(event: "error", listener: (err: Error) => void): this;
|
|
addListener(event: string, listener: (...args: any[]) => void): this;
|
|
on(event: "header", listener: (header: object) => void): this;
|
|
on(event: "close", listener: () => void): this;
|
|
on(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
on(event: "end", listener: () => void): this;
|
|
on(event: "readable", listener: () => void): this;
|
|
on(event: "error", listener: (err: Error) => void): this;
|
|
on(event: string, listener: (...args: any[]) => void): this;
|
|
once(event: "header", listener: (header: object) => void): this;
|
|
once(event: "close", listener: () => void): this;
|
|
once(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
once(event: "end", listener: () => void): this;
|
|
once(event: "readable", listener: () => void): this;
|
|
once(event: "error", listener: (err: Error) => void): this;
|
|
once(event: string, listener: (...args: any[]) => void): this;
|
|
prependListener(event: "header", listener: (header: object) => void): this;
|
|
prependListener(event: "close", listener: () => void): this;
|
|
prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
prependListener(event: "end", listener: () => void): this;
|
|
prependListener(event: "readable", listener: () => void): this;
|
|
prependListener(event: "error", listener: (err: Error) => void): this;
|
|
prependListener(event: string, listener: (...args: any[]) => void): this;
|
|
prependOnceListener(event: "header", listener: (header: object) => void): this;
|
|
prependOnceListener(event: "close", listener: () => void): this;
|
|
prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
prependOnceListener(event: "end", listener: () => void): this;
|
|
prependOnceListener(event: "readable", listener: () => void): this;
|
|
prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
|
prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
|
removeListener(event: "header", listener: (header: object) => void): this;
|
|
removeListener(event: "close", listener: () => void): this;
|
|
removeListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
|
removeListener(event: "end", listener: () => void): this;
|
|
removeListener(event: "readable", listener: () => void): this;
|
|
removeListener(event: "error", listener: (err: Error) => void): this;
|
|
removeListener(event: string, listener: (...args: any[]) => void): this;
|
|
}
|
|
} |