Skip to content

Commit 437120b

Browse files
committed
fix: 🐛 Add Float16Array
1 parent 9d6cde7 commit 437120b

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "json-web3",
3-
"version": "1.2.0",
3+
"version": "1.2.1",
44
"description": "BigInt-safe JSON serialization and deserialization for Web3 use cases.",
55
"keywords": [
66
"json",

src/utils.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,20 @@ export const getTypedArrayName = (value: any): string | null => {
5252
}
5353

5454
const TYPEDARRAY_CTORS: Record<string, any> = {
55+
Int8Array: !isUndefined(Int8Array) ? Int8Array : undefined,
5556
Uint8Array: !isUndefined(Uint8Array) ? Uint8Array : undefined,
5657
Uint8ClampedArray: !isUndefined(Uint8ClampedArray) ? Uint8ClampedArray : undefined,
57-
Uint16Array: !isUndefined(Uint16Array) ? Uint16Array : undefined,
58-
Uint32Array: !isUndefined(Uint32Array) ? Uint32Array : undefined,
59-
Int8Array: !isUndefined(Int8Array) ? Int8Array : undefined,
58+
6059
Int16Array: !isUndefined(Int16Array) ? Int16Array : undefined,
60+
Uint16Array: !isUndefined(Uint16Array) ? Uint16Array : undefined,
61+
Float16Array: !isUndefined(Float16Array) ? Float16Array : undefined,
62+
6163
Int32Array: !isUndefined(Int32Array) ? Int32Array : undefined,
64+
Uint32Array: !isUndefined(Uint32Array) ? Uint32Array : undefined,
6265
Float32Array: !isUndefined(Float32Array) ? Float32Array : undefined,
66+
6367
Float64Array: !isUndefined(Float64Array) ? Float64Array : undefined,
68+
6469
BigInt64Array: !isUndefined(BigInt64Array) ? BigInt64Array : undefined,
6570
BigUint64Array: !isUndefined(BigUint64Array) ? BigUint64Array : undefined,
6671
}

test/index.test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,11 @@ describe('json-web3', () => {
464464
{ name: 'Int8Array', ctor: Int8Array, values: [-128, -1, 0, 127] },
465465
{ name: 'Int16Array', ctor: Int16Array, values: [-32768, -1, 0, 32767] },
466466
{ name: 'Int32Array', ctor: Int32Array, values: [-2147483648, -1, 0, 2147483647] },
467+
{
468+
name: 'Float16Array',
469+
ctor: typeof Float16Array !== 'undefined' ? Float16Array : undefined,
470+
values: [1.5, -2.25, 3.125],
471+
},
467472
{ name: 'Float32Array', ctor: Float32Array, values: [1.5, -2.25, 3] },
468473
{ name: 'Float64Array', ctor: Float64Array, values: [1.5, -2.25, 3] },
469474
{
@@ -486,7 +491,8 @@ describe('json-web3', () => {
486491

487492
expect(text).toContain('__@json.typedarray__')
488493
expect(output.data).toBeInstanceOf(ctor)
489-
expect(Array.from(output.data)).toEqual(values)
494+
const expected = name === 'Float16Array' ? Array.from(new ctor(values as any)) : values
495+
expect(Array.from(output.data)).toEqual(expected)
490496
}
491497
})
492498

0 commit comments

Comments
 (0)