@rickyli79/rich-json
Version:
Serialize and Deserialize javascript objects
41 lines (40 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NumberSerializer = void 0;
const lib_1 = require("../lib");
const NumberStaticsKeys = ['EPSILON', 'MAX_SAFE_INTEGER', 'MAX_VALUE', 'MIN_SAFE_INTEGER', 'MIN_VALUE', 'NEGATIVE_INFINITY', 'POSITIVE_INFINITY'];
class NumberSerializer {
static instance;
static getInstance() {
if (this.instance === undefined) {
this.instance = (0, lib_1.createCustomerSerializer)({
class: Number,
toContent(value, isPlainContent) {
const v = value.valueOf();
if (Number.isNaN(v)) {
return 'NaN';
}
if (Object.is(v, -0)) {
return '-0';
}
for (const i of NumberStaticsKeys) {
const n = Number[i];
if (v === n) {
return i;
}
}
isPlainContent();
return v;
},
fromContent(content) {
if (content === '-0')
return -0;
return Number[content];
},
serializContent: false,
});
}
return this.instance;
}
}
exports.NumberSerializer = NumberSerializer;