UNPKG

mathjs

Version:

Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with dif

39 lines (38 loc) 1.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createReplacer = void 0; var _factory = require("../utils/factory.js"); const name = 'replacer'; const dependencies = []; const createReplacer = exports.createReplacer = /* #__PURE__ */(0, _factory.factory)(name, dependencies, () => { /** * Stringify data types into their JSON representation. * Most data types can be serialized using their `.toJSON` method, * but not all, for example the number `Infinity`. For these cases you have * to use the replacer. Example usage: * * JSON.stringify([2, Infinity], math.replacer) * * @param {string} key * @param {*} value * @returns {*} Returns the replaced object */ return function replacer(key, value) { // the numeric values Infinitiy, -Infinity, and NaN cannot be serialized to JSON if (typeof value === 'number' && (!isFinite(value) || isNaN(value))) { return { mathjs: 'number', value: String(value) }; } if (typeof value === 'bigint') { return { mathjs: 'bigint', value: String(value) }; } return value; }; });