| // 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; |
| } |
| } |