serde-ts/dist/de/generic.js
2025-05-22 03:35:53 -05:00

58 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenericVisitor = exports.GenericSeed = void 0;
class GenericSeed {
constructor(visitor = new GenericVisitor()) {
Object.defineProperty(this, "visitor", {
enumerable: true,
configurable: true,
writable: true,
value: void 0
});
this.visitor = visitor;
}
static deserialize(deserializer, visitor = new GenericVisitor()) {
return deserializer.deserializeAny(visitor);
}
deserialize(deserializer) {
return GenericSeed.deserialize(deserializer, this.visitor);
}
}
exports.GenericSeed = GenericSeed;
class GenericVisitor {
visitBoolean(value) {
return value;
}
visitNumber(value) {
return value;
}
visitBigInt(value) {
return value;
}
visitString(value) {
return value;
}
visitSymbol(value) {
return value;
}
visitNull() {
return null;
}
visitObject(access) {
const result = [];
let entry;
while ((entry = access.nextEntry()) && !entry.done) {
result.push(entry.value);
}
return Object.fromEntries(result);
}
visitIterable(access) {
const result = [];
let element;
while ((element = access.nextElement())) {
result.push(element);
}
return result;
}
}
exports.GenericVisitor = GenericVisitor;