Skip to content

Commit 7a70a6d

Browse files
committed
feat(nodejs): protocol version option, binary protocol for doubles
1 parent f54ad65 commit 7a70a6d

13 files changed

Lines changed: 1736 additions & 898 deletions

src/buffer/base.ts

Lines changed: 441 additions & 0 deletions
Large diffs are not rendered by default.

src/buffer/bufferv1.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// @ts-check
2+
import { SenderOptions } from "../options";
3+
import { SenderBuffer } from "./index";
4+
import { SenderBufferBase } from "./base";
5+
6+
class SenderBufferV1 extends SenderBufferBase {
7+
constructor(options: SenderOptions) {
8+
super(options);
9+
}
10+
11+
floatColumn(name: string, value: number): SenderBuffer {
12+
this.writeColumn(
13+
name,
14+
value,
15+
() => {
16+
const valueStr = value.toString();
17+
this.checkCapacity([valueStr]);
18+
this.write(valueStr);
19+
},
20+
"number",
21+
);
22+
return this;
23+
}
24+
}
25+
26+
export { SenderBufferV1 };

src/buffer/bufferv2.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// @ts-check
2+
import { SenderOptions } from "../options";
3+
import { SenderBuffer } from "./index";
4+
import { SenderBufferBase } from "./base";
5+
6+
const ENTITY_TYPE_DOUBLE: number = 16;
7+
const EQUALS_SIGN: number = "=".charCodeAt(0);
8+
9+
class SenderBufferV2 extends SenderBufferBase {
10+
constructor(options: SenderOptions) {
11+
super(options);
12+
}
13+
14+
floatColumn(name: string, value: number): SenderBuffer {
15+
this.writeColumn(
16+
name,
17+
value,
18+
() => {
19+
this.checkCapacity([], 10);
20+
this.writeByte(EQUALS_SIGN);
21+
this.writeByte(ENTITY_TYPE_DOUBLE);
22+
this.writeDouble(value);
23+
},
24+
"number",
25+
);
26+
return this;
27+
}
28+
}
29+
30+
export { SenderBufferV2 };

0 commit comments

Comments
 (0)