summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts')
-rw-r--r--remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts58
1 files changed, 27 insertions, 31 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts
index 14b87d403b..20dc8d9fc9 100644
--- a/remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts
+++ b/remote/test/puppeteer/packages/puppeteer-core/src/bidi/Deserializer.ts
@@ -12,40 +12,30 @@ import {debugError} from '../common/util.js';
* @internal
*/
export class BidiDeserializer {
- static deserializeNumber(value: Bidi.Script.SpecialNumber | number): number {
- switch (value) {
- case '-0':
- return -0;
- case 'NaN':
- return NaN;
- case 'Infinity':
- return Infinity;
- case '-Infinity':
- return -Infinity;
- default:
- return value;
+ static deserialize(result: Bidi.Script.RemoteValue): any {
+ if (!result) {
+ debugError('Service did not produce a result.');
+ return undefined;
}
- }
- static deserializeLocalValue(result: Bidi.Script.RemoteValue): unknown {
switch (result.type) {
case 'array':
return result.value?.map(value => {
- return BidiDeserializer.deserializeLocalValue(value);
+ return this.deserialize(value);
});
case 'set':
return result.value?.reduce((acc: Set<unknown>, value) => {
- return acc.add(BidiDeserializer.deserializeLocalValue(value));
+ return acc.add(this.deserialize(value));
}, new Set());
case 'object':
return result.value?.reduce((acc: Record<any, unknown>, tuple) => {
- const {key, value} = BidiDeserializer.deserializeTuple(tuple);
+ const {key, value} = this.#deserializeTuple(tuple);
acc[key as any] = value;
return acc;
}, {});
case 'map':
return result.value?.reduce((acc: Map<unknown, unknown>, tuple) => {
- const {key, value} = BidiDeserializer.deserializeTuple(tuple);
+ const {key, value} = this.#deserializeTuple(tuple);
return acc.set(key, value);
}, new Map());
case 'promise':
@@ -59,7 +49,7 @@ export class BidiDeserializer {
case 'null':
return null;
case 'number':
- return BidiDeserializer.deserializeNumber(result.value);
+ return this.#deserializeNumber(result.value);
case 'bigint':
return BigInt(result.value);
case 'boolean':
@@ -72,25 +62,31 @@ export class BidiDeserializer {
return undefined;
}
- static deserializeTuple([serializedKey, serializedValue]: [
+ static #deserializeNumber(value: Bidi.Script.SpecialNumber | number): number {
+ switch (value) {
+ case '-0':
+ return -0;
+ case 'NaN':
+ return NaN;
+ case 'Infinity':
+ return Infinity;
+ case '-Infinity':
+ return -Infinity;
+ default:
+ return value;
+ }
+ }
+
+ static #deserializeTuple([serializedKey, serializedValue]: [
Bidi.Script.RemoteValue | string,
Bidi.Script.RemoteValue,
]): {key: unknown; value: unknown} {
const key =
typeof serializedKey === 'string'
? serializedKey
- : BidiDeserializer.deserializeLocalValue(serializedKey);
- const value = BidiDeserializer.deserializeLocalValue(serializedValue);
+ : this.deserialize(serializedKey);
+ const value = this.deserialize(serializedValue);
return {key, value};
}
-
- static deserialize(result: Bidi.Script.RemoteValue): any {
- if (!result) {
- debugError('Service did not produce a result.');
- return undefined;
- }
-
- return BidiDeserializer.deserializeLocalValue(result);
- }
}