msgpackr 1.9.3 → 1.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index-no-eval.cjs +14 -4
- package/dist/index-no-eval.cjs.map +1 -1
- package/dist/index-no-eval.min.js +1 -1
- package/dist/index-no-eval.min.js.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/node.cjs +14 -4
- package/dist/node.cjs.map +1 -1
- package/dist/test.js +21 -4
- package/dist/test.js.map +1 -1
- package/index.d.cts +2 -1
- package/index.d.ts +2 -1
- package/pack.js +14 -4
- package/package.json +1 -1
package/index.d.cts
CHANGED
|
@@ -7,13 +7,14 @@ export enum FLOAT32_OPTIONS {
|
|
|
7
7
|
|
|
8
8
|
export interface Options {
|
|
9
9
|
useFloat32?: FLOAT32_OPTIONS
|
|
10
|
-
useRecords?: boolean | (value:any)=> boolean
|
|
10
|
+
useRecords?: boolean | ((value:any)=> boolean)
|
|
11
11
|
structures?: {}[]
|
|
12
12
|
moreTypes?: boolean
|
|
13
13
|
sequential?: boolean
|
|
14
14
|
structuredClone?: boolean
|
|
15
15
|
mapsAsObjects?: boolean
|
|
16
16
|
variableMapSize?: boolean
|
|
17
|
+
coercibleKeyAsNumber?: boolean
|
|
17
18
|
copyBuffers?: boolean
|
|
18
19
|
bundleStrings?: boolean
|
|
19
20
|
useTimestamp32?: boolean
|
package/index.d.ts
CHANGED
|
@@ -7,13 +7,14 @@ export enum FLOAT32_OPTIONS {
|
|
|
7
7
|
|
|
8
8
|
export interface Options {
|
|
9
9
|
useFloat32?: FLOAT32_OPTIONS
|
|
10
|
-
useRecords?: boolean | (value:any)=> boolean
|
|
10
|
+
useRecords?: boolean | ((value:any)=> boolean)
|
|
11
11
|
structures?: {}[]
|
|
12
12
|
moreTypes?: boolean
|
|
13
13
|
sequential?: boolean
|
|
14
14
|
structuredClone?: boolean
|
|
15
15
|
mapsAsObjects?: boolean
|
|
16
16
|
variableMapSize?: boolean
|
|
17
|
+
coercibleKeyAsNumber?: boolean
|
|
17
18
|
copyBuffers?: boolean
|
|
18
19
|
bundleStrings?: boolean
|
|
19
20
|
useTimestamp32?: boolean
|
package/pack.js
CHANGED
|
@@ -534,7 +534,7 @@ export class Packr extends Unpackr {
|
|
|
534
534
|
}
|
|
535
535
|
}
|
|
536
536
|
|
|
537
|
-
const writePlainObject = this.variableMapSize ? (object) => {
|
|
537
|
+
const writePlainObject = (this.variableMapSize || this.coercibleKeyAsNumber) ? (object) => {
|
|
538
538
|
// this method is slightly slower, but generates "preferred serialization" (optimally small for smaller objects)
|
|
539
539
|
let keys = Object.keys(object)
|
|
540
540
|
let length = keys.length
|
|
@@ -550,9 +550,19 @@ export class Packr extends Unpackr {
|
|
|
550
550
|
position += 4
|
|
551
551
|
}
|
|
552
552
|
let key
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
553
|
+
if (this.coercibleKeyAsNumber) {
|
|
554
|
+
for (let i = 0; i < length; i++) {
|
|
555
|
+
key = keys[i]
|
|
556
|
+
let num = Number(key)
|
|
557
|
+
pack(isNaN(num) ? key : num)
|
|
558
|
+
pack(object[key])
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
} else {
|
|
562
|
+
for (let i = 0; i < length; i++) {
|
|
563
|
+
pack(key = keys[i])
|
|
564
|
+
pack(object[key])
|
|
565
|
+
}
|
|
556
566
|
}
|
|
557
567
|
} :
|
|
558
568
|
(object, safePrototype) => {
|
package/package.json
CHANGED