You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					164 lines
				
				9.6 KiB
			
		
		
			
		
	
	
					164 lines
				
				9.6 KiB
			| 
											3 years ago
										 | // 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; | ||
|  |     } | ||
|  | } |