Skip to content

Commit 5b27852

Browse files
committed
feat: 🎸 support Buffer in JSON codec
1 parent 1be75f7 commit 5b27852

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/json/JsonEncoder.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ export class JsonEncoder implements BinaryJsonEncoder, StreamingBinaryJsonEncode
4040
case Uint8Array:
4141
return this.writeBin(value as Uint8Array);
4242
default:
43+
if (value instanceof Uint8Array) return this.writeBin(value);
44+
if (Array.isArray(value)) return this.writeArr(value);
4345
return this.writeUnknown(value);
4446
}
4547
}

src/json/__tests__/buffer.spec.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {Writer} from '@jsonjoy.com/util/lib/buffers/Writer';
2+
import {JsonEncoder} from '../JsonEncoder';
3+
import {JsonDecoder} from '../JsonDecoder';
4+
5+
test('supports Buffer', () => {
6+
const encoder = new JsonEncoder(new Writer());
7+
const buf = Buffer.from([1, 2, 3]);
8+
const encoded = encoder.encode(buf);
9+
const decoder = new JsonDecoder();
10+
const decoded = decoder.decode(encoded);
11+
expect(decoded).toStrictEqual(new Uint8Array([1, 2, 3]));
12+
});

0 commit comments

Comments
 (0)