@cloudpss/ubjson 0.4.33 → 0.4.34
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/common/encoder.d.ts +5 -3
- package/dist/common/encoder.js +52 -26
- package/dist/common/encoder.js.map +1 -1
- package/dist/common/string-encoder.js +6 -2
- package/dist/common/string-encoder.js.map +1 -1
- package/dist/encoder.js +1 -1
- package/dist/encoder.js.map +1 -1
- package/dist/stream-helper/encoder.js +2 -2
- package/dist/stream-helper/encoder.js.map +1 -1
- package/package.json +1 -1
- package/src/common/encoder.ts +57 -29
- package/src/common/string-encoder.ts +6 -2
- package/src/encoder.ts +1 -1
- package/src/stream-helper/encoder.ts +2 -2
- package/tests/encode.js +19 -7
- package/tests/rxjs/encode.js +3 -5
- package/tests/stream/encode.js +2 -2
package/dist/common/encoder.d.ts
CHANGED
|
@@ -14,12 +14,14 @@ export declare abstract class EncoderBase {
|
|
|
14
14
|
* 确保 buffer 还有 capacity 的空闲空间
|
|
15
15
|
*/
|
|
16
16
|
protected abstract ensureCapacity(capacity: number): void;
|
|
17
|
+
/** 编码至 ubjson */
|
|
18
|
+
protected writeValue(): void;
|
|
17
19
|
/** 写入一个对象 */
|
|
18
|
-
|
|
20
|
+
private write;
|
|
19
21
|
/** writeStringData */
|
|
20
|
-
|
|
22
|
+
private writeStringData;
|
|
21
23
|
/**
|
|
22
24
|
* 写入整形数字,选取合适的大小,需提前分配空间
|
|
23
25
|
*/
|
|
24
|
-
|
|
26
|
+
private setLength;
|
|
25
27
|
}
|
package/dist/common/encoder.js
CHANGED
|
@@ -8,6 +8,15 @@ export class EncoderBase {
|
|
|
8
8
|
/** 当前写指针位置 */
|
|
9
9
|
this.length = 0;
|
|
10
10
|
}
|
|
11
|
+
/** 编码至 ubjson */
|
|
12
|
+
writeValue() {
|
|
13
|
+
if (this.value === undefined) {
|
|
14
|
+
this.ensureCapacity(1);
|
|
15
|
+
this.buffer[this.length++] = 78 /* constants.NO_OP */;
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
this.write(this.value);
|
|
19
|
+
}
|
|
11
20
|
/** 写入一个对象 */
|
|
12
21
|
write(value) {
|
|
13
22
|
switch (typeof value) {
|
|
@@ -72,26 +81,36 @@ export class EncoderBase {
|
|
|
72
81
|
else if (Array.isArray(value)) {
|
|
73
82
|
this.ensureCapacity(1);
|
|
74
83
|
this.buffer[this.length++] = 91 /* constants.ARRAY */;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
84
|
+
const size = value.length;
|
|
85
|
+
for (let index = 0; index < size; index++) {
|
|
86
|
+
const element = value[index];
|
|
87
|
+
// 在数组中 undefined 和 function 也被视作 null 进行序列化
|
|
88
|
+
if (element == null || typeof element == 'function') {
|
|
78
89
|
this.ensureCapacity(1);
|
|
79
90
|
this.buffer[this.length++] = 90 /* constants.NULL */;
|
|
80
91
|
}
|
|
81
92
|
else {
|
|
82
|
-
this.write(
|
|
93
|
+
this.write(element);
|
|
83
94
|
}
|
|
84
95
|
}
|
|
85
96
|
this.ensureCapacity(1);
|
|
86
97
|
this.buffer[this.length++] = 93 /* constants.ARRAY_END */;
|
|
87
98
|
}
|
|
88
99
|
else if (!ArrayBuffer.isView(value)) {
|
|
100
|
+
const toJSON = typeof value['toJSON'] == 'function';
|
|
101
|
+
if (toJSON) {
|
|
102
|
+
this.write(value.toJSON());
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
89
105
|
this.ensureCapacity(1);
|
|
90
106
|
this.buffer[this.length++] = 123 /* constants.OBJECT */;
|
|
91
107
|
// 生成稳定的结果以便 hash 计算
|
|
92
|
-
|
|
108
|
+
const keys = Object.keys(value).sort();
|
|
109
|
+
const size = keys.length;
|
|
110
|
+
for (let index = 0; index < size; index++) {
|
|
111
|
+
const key = keys[index];
|
|
93
112
|
const element = value[key];
|
|
94
|
-
if (element === undefined)
|
|
113
|
+
if (element === undefined || typeof element == 'function')
|
|
95
114
|
continue;
|
|
96
115
|
this.writeStringData(key);
|
|
97
116
|
this.write(element);
|
|
@@ -113,44 +132,51 @@ export class EncoderBase {
|
|
|
113
132
|
this.length += value.byteLength;
|
|
114
133
|
return;
|
|
115
134
|
}
|
|
116
|
-
|
|
117
|
-
|
|
135
|
+
const arrayLength = value.length;
|
|
136
|
+
const elementSize = value
|
|
137
|
+
.BYTES_PER_ELEMENT;
|
|
118
138
|
if (value instanceof Int16Array) {
|
|
119
139
|
this.buffer[this.length++] = 73 /* constants.INT16 */;
|
|
120
|
-
/*
|
|
121
|
-
|
|
140
|
+
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
141
|
+
this.setLength(arrayLength);
|
|
142
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
143
|
+
this.view.setInt16(this.length, value[i]);
|
|
144
|
+
this.length += elementSize;
|
|
145
|
+
}
|
|
122
146
|
}
|
|
123
147
|
else if (value instanceof Int32Array) {
|
|
124
148
|
this.buffer[this.length++] = 108 /* constants.INT32 */;
|
|
125
|
-
/*
|
|
126
|
-
|
|
149
|
+
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
150
|
+
this.setLength(arrayLength);
|
|
151
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
152
|
+
this.view.setInt32(this.length, value[i]);
|
|
153
|
+
this.length += elementSize;
|
|
154
|
+
}
|
|
127
155
|
}
|
|
128
156
|
else if (value instanceof Float32Array) {
|
|
129
157
|
this.buffer[this.length++] = 100 /* constants.FLOAT32 */;
|
|
130
|
-
/*
|
|
131
|
-
|
|
158
|
+
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
159
|
+
this.setLength(arrayLength);
|
|
160
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
161
|
+
this.view.setFloat32(this.length, value[i]);
|
|
162
|
+
this.length += elementSize;
|
|
163
|
+
}
|
|
132
164
|
}
|
|
133
165
|
else if (value instanceof Float64Array) {
|
|
134
166
|
this.buffer[this.length++] = 68 /* constants.FLOAT64 */;
|
|
135
|
-
/*
|
|
136
|
-
|
|
167
|
+
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
168
|
+
this.setLength(arrayLength);
|
|
169
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
170
|
+
this.view.setFloat64(this.length, value[i]);
|
|
171
|
+
this.length += elementSize;
|
|
172
|
+
}
|
|
137
173
|
}
|
|
138
174
|
else {
|
|
139
175
|
throw new TypeError(`Unsupported typed array type ${Object.prototype.toString.call(value)}`);
|
|
140
176
|
}
|
|
141
|
-
this.buffer[this.length++] = 35 /* constants.COUNT_MARKER */;
|
|
142
|
-
this.setLength(value.length);
|
|
143
|
-
for (const v of value) {
|
|
144
|
-
setValue.call(this.view, this.length, v);
|
|
145
|
-
this.length += value.BYTES_PER_ELEMENT;
|
|
146
|
-
}
|
|
147
177
|
}
|
|
148
178
|
return;
|
|
149
179
|
}
|
|
150
|
-
case 'undefined':
|
|
151
|
-
this.ensureCapacity(1);
|
|
152
|
-
this.buffer[this.length++] = 78 /* constants.NO_OP */;
|
|
153
|
-
return;
|
|
154
180
|
case 'boolean':
|
|
155
181
|
this.ensureCapacity(1);
|
|
156
182
|
this.buffer[this.length++] = value ? 84 /* constants.TRUE */ : 70 /* constants.FALSE */;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/common/encoder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/common/encoder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzE,iBAAiB;AACjB,MAAM,OAAgB,WAAW;IAU7B,YAAqB,KAAc;QAAd,UAAK,GAAL,KAAK,CAAS;QAThB,qBAAgB,GAAG,mBAAmB,EAAE,CAAC;QACzC,eAAU,GAAG,aAAa,EAAE,CAAC;QAChD,cAAc;QACJ,WAAM,GAAG,CAAC,CAAC;IAMiB,CAAC;IAMvC,iBAAiB;IACP,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC1B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;YAC7C,OAAO;SACV;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,aAAa;IACL,KAAK,CAAC,KAAc;QACxB,QAAQ,OAAO,KAAK,EAAE;YAClB,KAAK,QAAQ;gBACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE;oBACjD,oBAAoB;oBACpB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,0BAAiB,CAAC;oBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;iBACpD;qBAAM;oBACH,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,4BAAmB,CAAC;oBAC9C,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBAC/B;gBACD,OAAO;YACX,KAAK,QAAQ;gBACT,qDAAqD;gBACrD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE;oBACvB,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,EAAE;wBAC5B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;wBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC;qBACtC;yBAAM,IAAI,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE;wBACtC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAiB,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC;qBACtC;yBAAM,IAAI,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,EAAE;wBAC1C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;wBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;wBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;qBAC7C;yBAAM;wBACH,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,4BAAkB,CAAC;wBAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBACvC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;qBACpB;iBACJ;qBAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,EAAE;oBAC5D,qBAAqB;oBACrB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,8BAAoB,CAAC;oBAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;iBACpB;qBAAM;oBACH,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,6BAAoB,CAAC;oBAC/C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;iBACpB;gBACD,OAAO;YACX,KAAK,QAAQ,CAAC,CAAC;gBACX,IAAI,KAAK,KAAK,IAAI,EAAE;oBAChB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,0BAAiB,CAAC;iBAC/C;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC7B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;oBAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;oBAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;wBACvC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAY,CAAC;wBACxC,4CAA4C;wBAC5C,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;4BACjD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;4BACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,0BAAiB,CAAC;yBAC/C;6BAAM;4BACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;yBACvB;qBACJ;oBACD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,+BAAsB,CAAC;iBACpD;qBAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACnC,MAAM,MAAM,GAAG,OAAQ,KAAiC,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC;oBACjF,IAAI,MAAM,EAAE;wBACR,IAAI,CAAC,KAAK,CAAE,KAAmC,CAAC,MAAM,EAAE,CAAC,CAAC;wBAC1D,OAAO;qBACV;oBACD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,6BAAmB,CAAC;oBAC9C,oBAAoB;oBACpB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;oBACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;wBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;wBACxB,MAAM,OAAO,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAC;wBACxD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,UAAU;4BAAE,SAAS;wBACpE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;wBAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;qBACvB;oBACD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,iCAAuB,CAAC;iBACrD;qBAAM;oBACH,6EAA6E;oBAC7E,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,iCAAwB,CAAC;oBACnD,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,SAAS,EAAE;wBAC3D,2DAA2D;wBAC3D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,0BAAiB,CAAC,yBAAe,CAAC;wBAC5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kCAAyB,CAAC;wBACpD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBACpC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;wBAChC,OAAO;qBACV;oBAED,MAAM,WAAW,GAAI,KAA+D,CAAC,MAAM,CAAC;oBAC5F,MAAM,WAAW,GAAI,KAA+D;yBAC/E,iBAAiB,CAAC;oBACvB,IAAI,KAAK,YAAY,UAAU,EAAE;wBAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;wBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kCAAyB,CAAC;wBACpD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;4BAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1C,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;yBAC9B;qBACJ;yBAAM,IAAI,KAAK,YAAY,UAAU,EAAE;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,4BAAkB,CAAC;wBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kCAAyB,CAAC;wBACpD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;4BAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC1C,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;yBAC9B;qBACJ;yBAAM,IAAI,KAAK,YAAY,YAAY,EAAE;wBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,8BAAoB,CAAC;wBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kCAAyB,CAAC;wBACpD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;4BAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5C,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;yBAC9B;qBACJ;yBAAM,IAAI,KAAK,YAAY,YAAY,EAAE;wBACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,6BAAoB,CAAC;wBAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kCAAyB,CAAC;wBACpD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;wBAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;4BAClC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC5C,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;yBAC9B;qBACJ;yBAAM;wBACH,MAAM,IAAI,SAAS,CAAC,gCAAgC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBAChG;iBACJ;gBACD,OAAO;aACV;YACD,KAAK,SAAS;gBACV,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,yBAAgB,CAAC,yBAAgB,CAAC;gBACtE,OAAO;YACX;gBACI,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACpF;IACL,CAAC;IAED,sBAAsB;IACd,eAAe,CAAC,KAAa;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,QAAQ,GACV,SAAS,GAAG,KAAK;YACb,CAAC,CAAC,oBAAoB;gBACpB,SAAS,GAAG,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvC,0CAA0C;QAC1C,qCAAqC;QACrC,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEtC,SAAS;QACT,MAAM,UAAU,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,SAAS,CAAC;QACd,SAAS;QACT,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACtC,IAAI,EAAE,EAAE,EAAE,CAAC;YACX,IAAI,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBAChC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,EAAE,GAAG,IAAI,EAAE;oBACX,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC;iBAC9B;qBAAM,IAAI,EAAE,GAAG,KAAK,EAAE;oBACnB,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;oBACzC,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;iBAC9C;qBAAM,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,MAAM,EAAE;oBACzF,EAAE,GAAG,KAAQ,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;oBACtD,CAAC,EAAE,CAAC;oBACJ,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;oBAC1C,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBACnD,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBAClD,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;iBAC9C;qBAAM;oBACH,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;oBAC1C,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;oBAClD,MAAM,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;iBAC9C;aACJ;YACD,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,CAAC;SACpD;aAAM;YACH,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;SAC3E;QACD,IAAI,SAAS,GAAG,GAAG,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAiB,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC;SAC1C;aAAM,IAAI,SAAS,GAAG,KAAK,EAAE;YAC1B,IAAI,UAAU,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;aACrG;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;SACjD;aAAM;YACH,IAAI,UAAU,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;aACrG;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,4BAAkB,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;SACpB;QACD,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,KAAa;QAC3B,qDAAqD;QACrD,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,EAAE;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAiB,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC;YACnC,OAAO,CAAC,CAAC;SACZ;QACD,kBAAkB;QAClB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,KAAK,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,2BAAkB,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;YAC1C,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,4BAAkB,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC;IACb,CAAC;CACJ"}
|
|
@@ -42,8 +42,12 @@ function getCharCodeByteLength(string) {
|
|
|
42
42
|
}
|
|
43
43
|
return byteLength;
|
|
44
44
|
}
|
|
45
|
-
export const getStringByteLength = () => typeof Buffer
|
|
45
|
+
export const getStringByteLength = () => typeof Buffer == 'function' && typeof Buffer.byteLength == 'function'
|
|
46
|
+
? (v) => Buffer.byteLength(v, 'utf8')
|
|
47
|
+
: getCharCodeByteLength;
|
|
46
48
|
/* c8 ignore next 1 */
|
|
47
49
|
const encoder = typeof TextEncoder == 'function' ? new TextEncoder() : undefined;
|
|
48
|
-
export const getEncodeInto = () => encoder?.encodeInto
|
|
50
|
+
export const getEncodeInto = () => typeof encoder?.encodeInto == 'function'
|
|
51
|
+
? (v, buf, offset) => encoder.encodeInto(v, buf.subarray(offset)).written
|
|
52
|
+
: undefined;
|
|
49
53
|
//# sourceMappingURL=string-encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/common/string-encoder.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,gCAAgC;AAChC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,yBAAyB;AACzB,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,gCAAgC;AAChC,6BAA6B;AAC7B,yEAAyE;AACzE,uCAAuC;AACvC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,cAAc;AACd,SAAS,qBAAqB,CAAC,MAAc;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5B,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,EAAE;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,SAAS,IAAI,oBAAoB,EAAE;YACnC,SAAS;SACZ;QAED,IAAI,SAAS,IAAI,wBAAwB,EAAE;YACvC,UAAU,IAAI,CAAC,CAAC;YAChB,SAAS;SACZ;QAED,UAAU,IAAI,CAAC,CAAC;QAEhB,IAAI,SAAS,GAAG,oBAAoB,IAAI,SAAS,GAAG,mBAAmB,EAAE;YACrE,SAAS;SACZ;QAED,iEAAiE;QACjE,iBAAiB;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAEvD,wDAAwD;QACxD,0EAA0E;QAC1E,0EAA0E;QAC1E,UAAU;QACV,IAAI,aAAa,GAAG,mBAAmB,IAAI,aAAa,GAAG,kBAAkB,EAAE;YAC3E,SAAS;SACZ;QAED,SAAS,IAAI,CAAC,CAAC;KAClB;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAA4B,EAAE,CAC7D,OAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"string-encoder.js","sourceRoot":"","sources":["../../src/common/string-encoder.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,gCAAgC;AAChC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,yBAAyB;AACzB,MAAM,wBAAwB,GAAG,KAAK,CAAC;AACvC,gCAAgC;AAChC,6BAA6B;AAC7B,yEAAyE;AACzE,uCAAuC;AACvC,MAAM,oBAAoB,GAAG,MAAM,CAAC;AACpC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACnC,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAClC,cAAc;AACd,SAAS,qBAAqB,CAAC,MAAc;IACzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,IAAI,UAAU,GAAG,UAAU,CAAC;IAE5B,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,CAAC,EAAE;QAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAE/C,IAAI,SAAS,IAAI,oBAAoB,EAAE;YACnC,SAAS;SACZ;QAED,IAAI,SAAS,IAAI,wBAAwB,EAAE;YACvC,UAAU,IAAI,CAAC,CAAC;YAChB,SAAS;SACZ;QAED,UAAU,IAAI,CAAC,CAAC;QAEhB,IAAI,SAAS,GAAG,oBAAoB,IAAI,SAAS,GAAG,mBAAmB,EAAE;YACrE,SAAS;SACZ;QAED,iEAAiE;QACjE,iBAAiB;QACjB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAEvD,wDAAwD;QACxD,0EAA0E;QAC1E,0EAA0E;QAC1E,UAAU;QACV,IAAI,aAAa,GAAG,mBAAmB,IAAI,aAAa,GAAG,kBAAkB,EAAE;YAC3E,SAAS;SACZ;QAED,SAAS,IAAI,CAAC,CAAC;KAClB;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAA4B,EAAE,CAC7D,OAAO,MAAM,IAAI,UAAU,IAAI,OAAO,MAAM,CAAC,UAAU,IAAI,UAAU;IACjE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC;IACrC,CAAC,CAAC,qBAAqB,CAAC;AAEhC,sBAAsB;AACtB,MAAM,OAAO,GAAG,OAAO,WAAW,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAyE,EAAE,CACpG,OAAO,OAAO,EAAE,UAAU,IAAI,UAAU;IACpC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;IACzE,CAAC,CAAC,SAAS,CAAC"}
|
package/dist/encoder.js
CHANGED
|
@@ -35,7 +35,7 @@ export class Encoder extends EncoderBase {
|
|
|
35
35
|
/** 获取写入结果 */
|
|
36
36
|
encode() {
|
|
37
37
|
this.ensureCapacity(BLOCK_SIZE);
|
|
38
|
-
this.
|
|
38
|
+
this.writeValue();
|
|
39
39
|
if (this.flushedBuffers.length === 0) {
|
|
40
40
|
if (this.buffer.byteLength === this.length) {
|
|
41
41
|
// 无需再拷贝一次
|
package/dist/encoder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,QAAQ;AACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS;AAE7C,iBAAiB;AACjB,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAAxC;;QACqB,mBAAc,GAAiB,EAAE,CAAC;IAoDvD,CAAC;IAnDG;;OAEG;IACO,cAAc,CAAC,QAAgB;QACrC,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,WAAW;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO;SACV;QACD,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,OAAO;QAE7D,UAAU;QACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,UAAU;QACV,IAAI,QAAQ,GAAG,UAAU;YAAE,QAAQ,GAAG,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,aAAa;IACb,MAAM;QACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../src/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,QAAQ;AACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS;AAE7C,iBAAiB;AACjB,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAAxC;;QACqB,mBAAc,GAAiB,EAAE,CAAC;IAoDvD,CAAC;IAnDG;;OAEG;IACO,cAAc,CAAC,QAAgB;QACrC,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,WAAW;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO;SACV;QACD,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,OAAO;QAE7D,UAAU;QACV,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAE/D,UAAU;QACV,IAAI,QAAQ,GAAG,UAAU;YAAE,QAAQ,GAAG,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,aAAa;IACb,MAAM;QACF,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAClC,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE;gBACxC,UAAU;gBACV,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;iBAAM;gBACH,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5C;SACJ;QAED,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,UAAU,CACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CACxF,CAAC;QACF,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;YACtC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC;SAC/B;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -44,12 +44,12 @@ export class StreamEncoderHelper extends EncoderBase {
|
|
|
44
44
|
encode() {
|
|
45
45
|
if (typeof this.value != 'object' || this.value == null || ArrayBuffer.isView(this.value)) {
|
|
46
46
|
this.ensureCapacity(20);
|
|
47
|
-
this.
|
|
47
|
+
this.writeValue();
|
|
48
48
|
this.ensureCapacity(-1);
|
|
49
49
|
}
|
|
50
50
|
else {
|
|
51
51
|
this.ensureCapacity(BLOCK_SIZE);
|
|
52
|
-
this.
|
|
52
|
+
this.writeValue();
|
|
53
53
|
this.ensureCapacity(-1);
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/stream-helper/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ;AACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,UAAU;AAE9C,kBAAkB;AAClB,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAChD,YACI,KAAc,EACK,OAAoC;QAEvD,KAAK,CAAC,KAAK,CAAC,CAAC;QAFM,YAAO,GAAP,OAAO,CAA6B;IAG3D,CAAC;IACD;;OAEG;IACO,cAAc,CAAC,QAAgB;QACrC,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,WAAW;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO;SACV;QACD,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,MAAM;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO;SACV;QACD,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,OAAO;QAE7D,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnD,UAAU;QACV,IAAI,QAAQ,GAAG,UAAU;YAAE,QAAQ,GAAG,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,aAAa;IACb,MAAM;QACF,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../src/stream-helper/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ;AACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC,UAAU;AAE9C,kBAAkB;AAClB,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAChD,YACI,KAAc,EACK,OAAoC;QAEvD,KAAK,CAAC,KAAK,CAAC,CAAC;QAFM,YAAO,GAAP,OAAO,CAA6B;IAG3D,CAAC;IACD;;OAEG;IACO,cAAc,CAAC,QAAgB;QACrC,IAAI,QAAQ,GAAG,QAAQ,EAAE;YACrB,WAAW;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrB,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,OAAO;SACV;QACD,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,MAAM;YACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,OAAO;SACV;QACD,OAAO;QACP,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ;YAAE,OAAO;QAE7D,UAAU;QACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAEnD,UAAU;QACV,IAAI,QAAQ,GAAG,UAAU;YAAE,QAAQ,GAAG,UAAU,CAAC;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,aAAa;IACb,MAAM;QACF,IAAI,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACvF,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B;aAAM;YACH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B;IACL,CAAC;CACJ"}
|
package/package.json
CHANGED
package/src/common/encoder.ts
CHANGED
|
@@ -17,8 +17,18 @@ export abstract class EncoderBase {
|
|
|
17
17
|
* 确保 buffer 还有 capacity 的空闲空间
|
|
18
18
|
*/
|
|
19
19
|
protected abstract ensureCapacity(capacity: number): void;
|
|
20
|
+
|
|
21
|
+
/** 编码至 ubjson */
|
|
22
|
+
protected writeValue(): void {
|
|
23
|
+
if (this.value === undefined) {
|
|
24
|
+
this.ensureCapacity(1);
|
|
25
|
+
this.buffer[this.length++] = constants.NO_OP;
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.write(this.value);
|
|
29
|
+
}
|
|
20
30
|
/** 写入一个对象 */
|
|
21
|
-
|
|
31
|
+
private write(value: unknown): void {
|
|
22
32
|
switch (typeof value) {
|
|
23
33
|
case 'string':
|
|
24
34
|
if (value.length === 1 && value.charCodeAt(0) < 128) {
|
|
@@ -74,24 +84,34 @@ export abstract class EncoderBase {
|
|
|
74
84
|
} else if (Array.isArray(value)) {
|
|
75
85
|
this.ensureCapacity(1);
|
|
76
86
|
this.buffer[this.length++] = constants.ARRAY;
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
const size = value.length;
|
|
88
|
+
for (let index = 0; index < size; index++) {
|
|
89
|
+
const element = value[index] as unknown;
|
|
90
|
+
// 在数组中 undefined 和 function 也被视作 null 进行序列化
|
|
91
|
+
if (element == null || typeof element == 'function') {
|
|
80
92
|
this.ensureCapacity(1);
|
|
81
93
|
this.buffer[this.length++] = constants.NULL;
|
|
82
94
|
} else {
|
|
83
|
-
this.write(
|
|
95
|
+
this.write(element);
|
|
84
96
|
}
|
|
85
97
|
}
|
|
86
98
|
this.ensureCapacity(1);
|
|
87
99
|
this.buffer[this.length++] = constants.ARRAY_END;
|
|
88
100
|
} else if (!ArrayBuffer.isView(value)) {
|
|
101
|
+
const toJSON = typeof (value as Record<string, unknown>)['toJSON'] == 'function';
|
|
102
|
+
if (toJSON) {
|
|
103
|
+
this.write((value as { toJSON: () => unknown }).toJSON());
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
89
106
|
this.ensureCapacity(1);
|
|
90
107
|
this.buffer[this.length++] = constants.OBJECT;
|
|
91
108
|
// 生成稳定的结果以便 hash 计算
|
|
92
|
-
|
|
109
|
+
const keys = Object.keys(value).sort();
|
|
110
|
+
const size = keys.length;
|
|
111
|
+
for (let index = 0; index < size; index++) {
|
|
112
|
+
const key = keys[index];
|
|
93
113
|
const element = (value as Record<string, unknown>)[key];
|
|
94
|
-
if (element === undefined) continue;
|
|
114
|
+
if (element === undefined || typeof element == 'function') continue;
|
|
95
115
|
this.writeStringData(key);
|
|
96
116
|
this.write(element);
|
|
97
117
|
}
|
|
@@ -111,40 +131,48 @@ export abstract class EncoderBase {
|
|
|
111
131
|
this.length += value.byteLength;
|
|
112
132
|
return;
|
|
113
133
|
}
|
|
114
|
-
|
|
115
|
-
|
|
134
|
+
|
|
135
|
+
const arrayLength = (value as Int16Array | Int32Array | Float32Array | Float64Array).length;
|
|
136
|
+
const elementSize = (value as Int16Array | Int32Array | Float32Array | Float64Array)
|
|
137
|
+
.BYTES_PER_ELEMENT;
|
|
116
138
|
if (value instanceof Int16Array) {
|
|
117
139
|
this.buffer[this.length++] = constants.INT16;
|
|
118
|
-
|
|
119
|
-
|
|
140
|
+
this.buffer[this.length++] = constants.COUNT_MARKER;
|
|
141
|
+
this.setLength(arrayLength);
|
|
142
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
143
|
+
this.view.setInt16(this.length, value[i]);
|
|
144
|
+
this.length += elementSize;
|
|
145
|
+
}
|
|
120
146
|
} else if (value instanceof Int32Array) {
|
|
121
147
|
this.buffer[this.length++] = constants.INT32;
|
|
122
|
-
|
|
123
|
-
|
|
148
|
+
this.buffer[this.length++] = constants.COUNT_MARKER;
|
|
149
|
+
this.setLength(arrayLength);
|
|
150
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
151
|
+
this.view.setInt32(this.length, value[i]);
|
|
152
|
+
this.length += elementSize;
|
|
153
|
+
}
|
|
124
154
|
} else if (value instanceof Float32Array) {
|
|
125
155
|
this.buffer[this.length++] = constants.FLOAT32;
|
|
126
|
-
|
|
127
|
-
|
|
156
|
+
this.buffer[this.length++] = constants.COUNT_MARKER;
|
|
157
|
+
this.setLength(arrayLength);
|
|
158
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
159
|
+
this.view.setFloat32(this.length, value[i]);
|
|
160
|
+
this.length += elementSize;
|
|
161
|
+
}
|
|
128
162
|
} else if (value instanceof Float64Array) {
|
|
129
163
|
this.buffer[this.length++] = constants.FLOAT64;
|
|
130
|
-
|
|
131
|
-
|
|
164
|
+
this.buffer[this.length++] = constants.COUNT_MARKER;
|
|
165
|
+
this.setLength(arrayLength);
|
|
166
|
+
for (let i = 0; i < arrayLength; i++) {
|
|
167
|
+
this.view.setFloat64(this.length, value[i]);
|
|
168
|
+
this.length += elementSize;
|
|
169
|
+
}
|
|
132
170
|
} else {
|
|
133
171
|
throw new TypeError(`Unsupported typed array type ${Object.prototype.toString.call(value)}`);
|
|
134
172
|
}
|
|
135
|
-
this.buffer[this.length++] = constants.COUNT_MARKER;
|
|
136
|
-
this.setLength(value.length);
|
|
137
|
-
for (const v of value) {
|
|
138
|
-
setValue.call(this.view, this.length, v);
|
|
139
|
-
this.length += value.BYTES_PER_ELEMENT;
|
|
140
|
-
}
|
|
141
173
|
}
|
|
142
174
|
return;
|
|
143
175
|
}
|
|
144
|
-
case 'undefined':
|
|
145
|
-
this.ensureCapacity(1);
|
|
146
|
-
this.buffer[this.length++] = constants.NO_OP;
|
|
147
|
-
return;
|
|
148
176
|
case 'boolean':
|
|
149
177
|
this.ensureCapacity(1);
|
|
150
178
|
this.buffer[this.length++] = value ? constants.TRUE : constants.FALSE;
|
|
@@ -155,7 +183,7 @@ export abstract class EncoderBase {
|
|
|
155
183
|
}
|
|
156
184
|
|
|
157
185
|
/** writeStringData */
|
|
158
|
-
|
|
186
|
+
private writeStringData(value: string): void {
|
|
159
187
|
const strLength = value.length;
|
|
160
188
|
const maxUsage =
|
|
161
189
|
strLength < 65536
|
|
@@ -223,7 +251,7 @@ export abstract class EncoderBase {
|
|
|
223
251
|
/**
|
|
224
252
|
* 写入整形数字,选取合适的大小,需提前分配空间
|
|
225
253
|
*/
|
|
226
|
-
|
|
254
|
+
private setLength(value: number): number {
|
|
227
255
|
// eslint-disable-next-line unicorn/prefer-math-trunc
|
|
228
256
|
value = value | 0;
|
|
229
257
|
if ((value & 0x7f) === value) {
|
|
@@ -54,9 +54,13 @@ function getCharCodeByteLength(string: string): number {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export const getStringByteLength = (): ((v: string) => number) =>
|
|
57
|
-
typeof Buffer
|
|
57
|
+
typeof Buffer == 'function' && typeof Buffer.byteLength == 'function'
|
|
58
|
+
? (v) => Buffer.byteLength(v, 'utf8')
|
|
59
|
+
: getCharCodeByteLength;
|
|
58
60
|
|
|
59
61
|
/* c8 ignore next 1 */
|
|
60
62
|
const encoder = typeof TextEncoder == 'function' ? new TextEncoder() : undefined;
|
|
61
63
|
export const getEncodeInto = (): ((v: string, buf: Uint8Array, offset: number) => number) | undefined =>
|
|
62
|
-
encoder?.encodeInto
|
|
64
|
+
typeof encoder?.encodeInto == 'function'
|
|
65
|
+
? (v, buf, offset) => encoder.encodeInto(v, buf.subarray(offset)).written
|
|
66
|
+
: undefined;
|
package/src/encoder.ts
CHANGED
|
@@ -35,7 +35,7 @@ export class Encoder extends EncoderBase {
|
|
|
35
35
|
/** 获取写入结果 */
|
|
36
36
|
encode(): Uint8Array {
|
|
37
37
|
this.ensureCapacity(BLOCK_SIZE);
|
|
38
|
-
this.
|
|
38
|
+
this.writeValue();
|
|
39
39
|
if (this.flushedBuffers.length === 0) {
|
|
40
40
|
if (this.buffer.byteLength === this.length) {
|
|
41
41
|
// 无需再拷贝一次
|
|
@@ -48,11 +48,11 @@ export class StreamEncoderHelper extends EncoderBase {
|
|
|
48
48
|
encode(): void {
|
|
49
49
|
if (typeof this.value != 'object' || this.value == null || ArrayBuffer.isView(this.value)) {
|
|
50
50
|
this.ensureCapacity(20);
|
|
51
|
-
this.
|
|
51
|
+
this.writeValue();
|
|
52
52
|
this.ensureCapacity(-1);
|
|
53
53
|
} else {
|
|
54
54
|
this.ensureCapacity(BLOCK_SIZE);
|
|
55
|
-
this.
|
|
55
|
+
this.writeValue();
|
|
56
56
|
this.ensureCapacity(-1);
|
|
57
57
|
}
|
|
58
58
|
}
|
package/tests/encode.js
CHANGED
|
@@ -125,6 +125,10 @@ test('encode array (undefined)', () => {
|
|
|
125
125
|
expect(toArray(encode([undefined]))).toEqual(toArray('[', 'Z', ']'));
|
|
126
126
|
});
|
|
127
127
|
|
|
128
|
+
test('encode array (function)', () => {
|
|
129
|
+
expect(toArray(encode([() => 1]))).toEqual(toArray('[', 'Z', ']'));
|
|
130
|
+
});
|
|
131
|
+
|
|
128
132
|
test('encode array (spares)', () => {
|
|
129
133
|
const array = Array.from({ length: 3 });
|
|
130
134
|
array[1] = true;
|
|
@@ -326,13 +330,9 @@ test('encode object (skip undefined)', () => {
|
|
|
326
330
|
expect(toArray(encode(obj))).toEqual(toArray('{', '}'));
|
|
327
331
|
});
|
|
328
332
|
|
|
329
|
-
test('encode object (function)
|
|
330
|
-
const obj = {
|
|
331
|
-
|
|
332
|
-
// noop
|
|
333
|
-
},
|
|
334
|
-
};
|
|
335
|
-
expect(() => encode(obj)).toThrow(/Unsupported type \[object Function\]/);
|
|
333
|
+
test('encode object (skip function)', () => {
|
|
334
|
+
const obj = { a: 1, b: () => 1 };
|
|
335
|
+
expect(toArray(encode(obj))).toEqual(toArray('{', 'i', 1, 'a', 'U', 1, '}'));
|
|
336
336
|
});
|
|
337
337
|
|
|
338
338
|
test('encode object (include null)', () => {
|
|
@@ -402,3 +402,15 @@ test('encode huge data (256M)', () => {
|
|
|
402
402
|
);
|
|
403
403
|
expect(toArray(encoded.slice(-1))).toEqual(toArray(']'));
|
|
404
404
|
});
|
|
405
|
+
|
|
406
|
+
test('encode custom toJSON', () => {
|
|
407
|
+
const obj = {
|
|
408
|
+
toJSON: () => ({ a: 1 }),
|
|
409
|
+
};
|
|
410
|
+
expect(toArray(encode(obj))).toEqual(toArray('{', 'i', 1, 'a', 'U', 1, '}'));
|
|
411
|
+
});
|
|
412
|
+
|
|
413
|
+
test('encode Date', () => {
|
|
414
|
+
const obj = new Date(0);
|
|
415
|
+
expect(toArray(encode(obj))).toEqual(toArray('S', 'i', 24, ...'1970-01-01T00:00:00.000Z'));
|
|
416
|
+
});
|
package/tests/rxjs/encode.js
CHANGED
|
@@ -329,13 +329,11 @@ test('encode object (skip undefined)', async () => {
|
|
|
329
329
|
expect(toArray(await encodeAsync(obj))).toEqual(toArray('{', '}'));
|
|
330
330
|
});
|
|
331
331
|
|
|
332
|
-
test('encode object (function)
|
|
332
|
+
test('encode object (skip function)', async () => {
|
|
333
333
|
const obj = {
|
|
334
|
-
a: () =>
|
|
335
|
-
// noop
|
|
336
|
-
},
|
|
334
|
+
a: () => 1,
|
|
337
335
|
};
|
|
338
|
-
|
|
336
|
+
expect(toArray(await encodeAsync(obj))).toEqual(toArray('{', '}'));
|
|
339
337
|
});
|
|
340
338
|
|
|
341
339
|
test('encode object (include null)', async () => {
|
package/tests/stream/encode.js
CHANGED
|
@@ -324,13 +324,13 @@ test('encode object (skip undefined)', async () => {
|
|
|
324
324
|
expect(toArray(await encodeAsync(obj))).toEqual(toArray('{', '}'));
|
|
325
325
|
});
|
|
326
326
|
|
|
327
|
-
test('encode object (function)
|
|
327
|
+
test('encode object (skip function)', async () => {
|
|
328
328
|
const obj = {
|
|
329
329
|
a: () => {
|
|
330
330
|
// noop
|
|
331
331
|
},
|
|
332
332
|
};
|
|
333
|
-
|
|
333
|
+
expect(toArray(await encodeAsync(obj))).toEqual(toArray('{', '}'));
|
|
334
334
|
});
|
|
335
335
|
|
|
336
336
|
test('encode object (include null)', async () => {
|