serde-ts/dist/ser/identity.js

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;