80 lines
1.9 KiB
JavaScript
80 lines
1.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.IdentitySerializer = void 0;
|
|
const interface_1 = require("./interface");
|
|
class IdentityMap extends interface_1.SerializeObject {
|
|
constructor() {
|
|
super(...arguments);
|
|
Object.defineProperty(this, "value", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: {}
|
|
});
|
|
Object.defineProperty(this, "currentKey", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: void 0
|
|
});
|
|
}
|
|
serializeKey(key) {
|
|
this.currentKey = key;
|
|
}
|
|
serializeValue(value) {
|
|
this.value[this.currentKey] = value;
|
|
}
|
|
end() {
|
|
return this.value;
|
|
}
|
|
}
|
|
class IdentityIterable extends interface_1.SerializeIterable {
|
|
constructor() {
|
|
super(...arguments);
|
|
Object.defineProperty(this, "value", {
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true,
|
|
value: []
|
|
});
|
|
}
|
|
serializeElement(value) {
|
|
this.value.push(value);
|
|
}
|
|
end() {
|
|
return this.value;
|
|
}
|
|
}
|
|
class IdentitySerializer {
|
|
serializeAny(value) {
|
|
return value;
|
|
}
|
|
serializeBoolean(value) {
|
|
return value;
|
|
}
|
|
serializeNumber(value) {
|
|
return value;
|
|
}
|
|
serializeBigInt(value) {
|
|
return value;
|
|
}
|
|
serializeString(value) {
|
|
return value;
|
|
}
|
|
serializeSymbol(value) {
|
|
return value;
|
|
}
|
|
serializeNull() {
|
|
return null;
|
|
}
|
|
serializeIterable(_len) {
|
|
return new IdentityIterable();
|
|
}
|
|
serializeObject(_len) {
|
|
return new IdentityMap();
|
|
}
|
|
serializeClass(_name, _len) {
|
|
return new IdentityMap();
|
|
}
|
|
}
|
|
exports.IdentitySerializer = IdentitySerializer;
|