UNPKG

2.07 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { EventEmitter } from "events";
4import Int64 = require("node-int64");
5
6export type InputWrapper =
7 | Buffer
8 | string
9 | NodeJS.TypedArray
10 | DataView
11 | ArrayBuffer
12 | SharedArrayBuffer;
13export type IntWrapper = number | Int64;
14export type AnyWrapper = boolean | IntWrapper | null | string | object;
15
16export class Accumulator {
17 buf: Buffer;
18 readOffset: number;
19 writeOffset: number;
20
21 constructor(initsize?: number);
22
23 append(buf: InputWrapper): void;
24
25 assertReadableSize(size: number): void;
26
27 peekDouble(): number;
28
29 peekInt(size: number): IntWrapper;
30
31 peekString(size: number): string;
32
33 readAdvance(size: number): void;
34
35 readAvail(): number;
36
37 readDouble(): number;
38
39 // replace "IntWrapper" with "number"?
40 readInt(bytes: number): IntWrapper;
41
42 readString(size: number): string;
43
44 reserve(size: number): void;
45
46 writeAvail(): number;
47
48 writeByte(value: number): void;
49
50 writeDouble(value: number): void;
51
52 writeInt(value: number, size: number): void;
53}
54
55export class BunserBuf extends EventEmitter {
56 buf: Accumulator;
57 state: 0 | 1;
58 // replace "IntWrapper" with "number"?
59 pduLen?: false | IntWrapper | undefined;
60
61 constructor();
62
63 append(
64 buf: InputWrapper,
65 synchronous?: false,
66 ): AnyWrapper | AnyWrapper[] | undefined;
67 append(buf: InputWrapper, synchronous: true): void;
68
69 decodeAny(): AnyWrapper | AnyWrapper[];
70
71 decodeArray(): AnyWrapper[];
72
73 // replace "IntWrapper" with "number"?
74 decodeInt(relaxSizeAsserts?: boolean): false | IntWrapper;
75
76 decodeObject(): object;
77
78 decodeString(): string;
79
80 decodeTemplate(): AnyWrapper[];
81
82 expectCode(expected: number): void;
83
84 process(synchronous?: false): AnyWrapper | AnyWrapper[] | undefined;
85 process(synchronous: true): void;
86
87 processLater(): void;
88
89 raise(reason: string): void;
90}
91
92export function dumpToBuffer(val: any): Buffer;
93
94export function loadFromBuffer(input: InputWrapper): AnyWrapper | AnyWrapper[];