UNPKG

@rickyli79/rich-json

Version:

Serialize and Deserialize javascript objects

41 lines (40 loc) 1.45 kB
"use strict"; 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;