58 lines
1.5 KiB
JavaScript
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;
|