index.d.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /// <reference types="node" />
  2. /// <reference types="node" />
  3. /// <reference types="node" />
  4. import { Transform, TransformCallback, TransformOptions } from 'stream';
  5. export interface PacketLengthOptions extends TransformOptions {
  6. /** delimiter(s) to use defaults to 0xaa */
  7. delimiter?: number | number[];
  8. /** delimiter length in bytes defaults to 1 */
  9. delimiterBytes?: number;
  10. /** overhead of packet (including length, delimiter and any checksum / packet footer) defaults to 2 */
  11. packetOverhead?: number;
  12. /** number of bytes containing length defaults to 1 */
  13. lengthBytes?: number;
  14. /** offset of length field defaults to 1 */
  15. lengthOffset?: number;
  16. /** max packet length defaults to 0xff */
  17. maxLen?: number;
  18. }
  19. /**
  20. * A transform stream that decodes packets with a delimiter and length of payload
  21. * specified within the data stream.
  22. * @extends Transform
  23. * @summary Decodes packets of the general form:
  24. * [delimiter][len][payload0] ... [payload0 + len]
  25. *
  26. * The length field can be up to 4 bytes and can be at any offset within the packet
  27. * [delimiter][header0][header1][len0][len1[payload0] ... [payload0 + len]
  28. *
  29. * The offset and number of bytes of the length field need to be provided in options
  30. * if not 1 byte immediately following the delimiter.
  31. */
  32. export declare class PacketLengthParser extends Transform {
  33. buffer: Buffer;
  34. start: boolean;
  35. opts: {
  36. delimiter: number[];
  37. delimiterBytes: number;
  38. packetOverhead: number;
  39. lengthBytes: number;
  40. lengthOffset: number;
  41. maxLen: number;
  42. };
  43. constructor(options?: PacketLengthOptions);
  44. _transform(chunk: Buffer, encoding: BufferEncoding, cb: TransformCallback): void;
  45. _flush(cb: TransformCallback): void;
  46. }