Skip to content

Commit ea54873

Browse files
committed
Release v1.9.1 - Add missing cstring write method + add vector write to interface.
1 parent 92547e7 commit ea54873

6 files changed

Lines changed: 86 additions & 10 deletions

File tree

.npmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.github/*
2+
.idea/*
23
base/*
34
enums/*
45
index.ts

package-lock.json

Lines changed: 34 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bufferstuff",
3-
"version": "1.9.0",
3+
"version": "1.9.1",
44
"description": "A set of utility classes for reading and writing binary data in NodeJS and the browser",
55
"main": "./lib/index.js",
66
"types": "./lib/index.d.ts",
@@ -34,9 +34,7 @@
3434
"@types/node": "^25.1.0",
3535
"npm-run-all": "^4.1.5",
3636
"terser": "^5.46.0",
37+
"tsx": "^4.21.0",
3738
"typescript": "^5.9.3"
38-
},
39-
"dependencies": {
40-
"tsx": "^4.21.0"
4139
}
4240
}

writers/IWriter.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
// Copyright (c) Holly Stubbs (tgpholly) - Licensed under MIT
22
// Check LICENSE in repository root for more information.
33

4+
import Vec2 from "../base/Vec2";
5+
import Vec3 from "../base/Vec3";
6+
47
export default interface IWriter {
58
writeOffset: number,
69
length: number,
@@ -28,5 +31,8 @@ export default interface IWriter {
2831
writeUString16(text:string): IWriter,
2932
writeString16(text:string): IWriter,
3033
writeStringAsShorts(text:string): IWriter,
31-
writeJavaUTF(text:string): IWriter
34+
writeJavaUTF(text:string): IWriter,
35+
writeVec2(vec2: Vec2): IWriter,
36+
writeVec3(vec2: Vec3): IWriter,
37+
writeCString(value: string): IWriter
3238
}

writers/WriterBE.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,4 +211,25 @@ export default class WriterBE extends WriterBase implements IWriter {
211211

212212
return this;
213213
}
214+
215+
public writeCString(value: string) {
216+
let buffer: Buffer;
217+
if (this.resizable) {
218+
buffer = getBufferClass().alloc(value.length);
219+
} else {
220+
buffer = this.buffer;
221+
}
222+
223+
for (let i = 0; i < value.length; i++) {
224+
buffer.writeUInt8(value.charCodeAt(i), i);
225+
}
226+
227+
if (this.resizable) {
228+
this.writeBuffer(buffer);
229+
}
230+
231+
this.writeUByte(0) // null
232+
233+
return this;
234+
}
214235
}

writers/WriterLE.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,4 +198,25 @@ export default class WriterLE extends WriterBase implements IWriter {
198198

199199
return this;
200200
}
201+
202+
public writeCString(value: string) {
203+
let buffer: Buffer;
204+
if (this.resizable) {
205+
buffer = getBufferClass().alloc(value.length);
206+
} else {
207+
buffer = this.buffer;
208+
}
209+
210+
for (let i = 0; i < value.length; i++) {
211+
buffer.writeUInt8(value.charCodeAt(i), i);
212+
}
213+
214+
if (this.resizable) {
215+
this.writeBuffer(buffer);
216+
}
217+
218+
this.writeUByte(0) // null
219+
220+
return this;
221+
}
201222
}

0 commit comments

Comments
 (0)