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