dicer.d.ts 9.6 KB

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