UNPKG

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