[d24f17c] | 1 | // Type definitions for dicer 0.2
|
---|
| 2 | // Project: https://github.com/mscdex/dicer
|
---|
| 3 | // Definitions by: BendingBender <https://github.com/BendingBender>
|
---|
| 4 | // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
---|
| 5 | // TypeScript Version: 2.2
|
---|
| 6 | /// <reference types="node" />
|
---|
| 7 |
|
---|
| 8 | import stream = require("stream");
|
---|
| 9 |
|
---|
| 10 | // tslint:disable:unified-signatures
|
---|
| 11 |
|
---|
| 12 | /**
|
---|
| 13 | * A very fast streaming multipart parser for node.js.
|
---|
| 14 | * Dicer is a WritableStream
|
---|
| 15 | *
|
---|
| 16 | * Dicer (special) events:
|
---|
| 17 | * - on('finish', ()) - Emitted when all parts have been parsed and the Dicer instance has been ended.
|
---|
| 18 | * - on('part', (stream: PartStream)) - Emitted when a new part has been found.
|
---|
| 19 | * - on('preamble', (stream: PartStream)) - Emitted for preamble if you should happen to need it (can usually be ignored).
|
---|
| 20 | * - on('trailer', (data: Buffer)) - Emitted when trailing data was found after the terminating boundary (as with the preamble, this can usually be ignored too).
|
---|
| 21 | */
|
---|
| 22 | export class Dicer extends stream.Writable {
|
---|
| 23 | /**
|
---|
| 24 | * Creates and returns a new Dicer instance with the following valid config settings:
|
---|
| 25 | *
|
---|
| 26 | * @param config The configuration to use
|
---|
| 27 | */
|
---|
| 28 | constructor(config: Dicer.Config);
|
---|
| 29 | /**
|
---|
| 30 | * Sets the boundary to use for parsing and performs some initialization needed for parsing.
|
---|
| 31 | * 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.
|
---|
| 32 | *
|
---|
| 33 | * @param boundary The boundary to use
|
---|
| 34 | */
|
---|
| 35 | setBoundary(boundary: string): void;
|
---|
| 36 | addListener(event: "finish", listener: () => void): this;
|
---|
| 37 | addListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 38 | addListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 39 | addListener(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 40 | addListener(event: "close", listener: () => void): this;
|
---|
| 41 | addListener(event: "drain", listener: () => void): this;
|
---|
| 42 | addListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 43 | addListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 44 | addListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 45 | addListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 46 | on(event: "finish", listener: () => void): this;
|
---|
| 47 | on(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 48 | on(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 49 | on(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 50 | on(event: "close", listener: () => void): this;
|
---|
| 51 | on(event: "drain", listener: () => void): this;
|
---|
| 52 | on(event: "error", listener: (err: Error) => void): this;
|
---|
| 53 | on(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 54 | on(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 55 | on(event: string, listener: (...args: any[]) => void): this;
|
---|
| 56 | once(event: "finish", listener: () => void): this;
|
---|
| 57 | once(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 58 | once(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 59 | once(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 60 | once(event: "close", listener: () => void): this;
|
---|
| 61 | once(event: "drain", listener: () => void): this;
|
---|
| 62 | once(event: "error", listener: (err: Error) => void): this;
|
---|
| 63 | once(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 64 | once(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 65 | once(event: string, listener: (...args: any[]) => void): this;
|
---|
| 66 | prependListener(event: "finish", listener: () => void): this;
|
---|
| 67 | prependListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 68 | prependListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 69 | prependListener(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 70 | prependListener(event: "close", listener: () => void): this;
|
---|
| 71 | prependListener(event: "drain", listener: () => void): this;
|
---|
| 72 | prependListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 73 | prependListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 74 | prependListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 75 | prependListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 76 | prependOnceListener(event: "finish", listener: () => void): this;
|
---|
| 77 | prependOnceListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 78 | prependOnceListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 79 | prependOnceListener(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 80 | prependOnceListener(event: "close", listener: () => void): this;
|
---|
| 81 | prependOnceListener(event: "drain", listener: () => void): this;
|
---|
| 82 | prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 83 | prependOnceListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 84 | prependOnceListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 85 | prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 86 | removeListener(event: "finish", listener: () => void): this;
|
---|
| 87 | removeListener(event: "part", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 88 | removeListener(event: "preamble", listener: (stream: Dicer.PartStream) => void): this;
|
---|
| 89 | removeListener(event: "trailer", listener: (data: Buffer) => void): this;
|
---|
| 90 | removeListener(event: "close", listener: () => void): this;
|
---|
| 91 | removeListener(event: "drain", listener: () => void): this;
|
---|
| 92 | removeListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 93 | removeListener(event: "pipe", listener: (src: stream.Readable) => void): this;
|
---|
| 94 | removeListener(event: "unpipe", listener: (src: stream.Readable) => void): this;
|
---|
| 95 | removeListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 96 | }
|
---|
| 97 |
|
---|
| 98 | declare namespace Dicer {
|
---|
| 99 | interface Config {
|
---|
| 100 | /**
|
---|
| 101 | * This is the boundary used to detect the beginning of a new part.
|
---|
| 102 | */
|
---|
| 103 | boundary?: string | undefined;
|
---|
| 104 | /**
|
---|
| 105 | * If true, preamble header parsing will be performed first.
|
---|
| 106 | */
|
---|
| 107 | headerFirst?: boolean | undefined;
|
---|
| 108 | /**
|
---|
| 109 | * The maximum number of header key=>value pairs to parse Default: 2000 (same as node's http).
|
---|
| 110 | */
|
---|
| 111 | maxHeaderPairs?: number | undefined;
|
---|
| 112 | }
|
---|
| 113 |
|
---|
| 114 | /**
|
---|
| 115 | * PartStream is a _ReadableStream_
|
---|
| 116 | *
|
---|
| 117 | * PartStream (special) events:
|
---|
| 118 | * - 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.
|
---|
| 119 | */
|
---|
| 120 | interface PartStream extends stream.Readable {
|
---|
| 121 | addListener(event: "header", listener: (header: object) => void): this;
|
---|
| 122 | addListener(event: "close", listener: () => void): this;
|
---|
| 123 | addListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 124 | addListener(event: "end", listener: () => void): this;
|
---|
| 125 | addListener(event: "readable", listener: () => void): this;
|
---|
| 126 | addListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 127 | addListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 128 | on(event: "header", listener: (header: object) => void): this;
|
---|
| 129 | on(event: "close", listener: () => void): this;
|
---|
| 130 | on(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 131 | on(event: "end", listener: () => void): this;
|
---|
| 132 | on(event: "readable", listener: () => void): this;
|
---|
| 133 | on(event: "error", listener: (err: Error) => void): this;
|
---|
| 134 | on(event: string, listener: (...args: any[]) => void): this;
|
---|
| 135 | once(event: "header", listener: (header: object) => void): this;
|
---|
| 136 | once(event: "close", listener: () => void): this;
|
---|
| 137 | once(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 138 | once(event: "end", listener: () => void): this;
|
---|
| 139 | once(event: "readable", listener: () => void): this;
|
---|
| 140 | once(event: "error", listener: (err: Error) => void): this;
|
---|
| 141 | once(event: string, listener: (...args: any[]) => void): this;
|
---|
| 142 | prependListener(event: "header", listener: (header: object) => void): this;
|
---|
| 143 | prependListener(event: "close", listener: () => void): this;
|
---|
| 144 | prependListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 145 | prependListener(event: "end", listener: () => void): this;
|
---|
| 146 | prependListener(event: "readable", listener: () => void): this;
|
---|
| 147 | prependListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 148 | prependListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 149 | prependOnceListener(event: "header", listener: (header: object) => void): this;
|
---|
| 150 | prependOnceListener(event: "close", listener: () => void): this;
|
---|
| 151 | prependOnceListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 152 | prependOnceListener(event: "end", listener: () => void): this;
|
---|
| 153 | prependOnceListener(event: "readable", listener: () => void): this;
|
---|
| 154 | prependOnceListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 155 | prependOnceListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 156 | removeListener(event: "header", listener: (header: object) => void): this;
|
---|
| 157 | removeListener(event: "close", listener: () => void): this;
|
---|
| 158 | removeListener(event: "data", listener: (chunk: Buffer | string) => void): this;
|
---|
| 159 | removeListener(event: "end", listener: () => void): this;
|
---|
| 160 | removeListener(event: "readable", listener: () => void): this;
|
---|
| 161 | removeListener(event: "error", listener: (err: Error) => void): this;
|
---|
| 162 | removeListener(event: string, listener: (...args: any[]) => void): this;
|
---|
| 163 | }
|
---|
| 164 | } |
---|