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

31 lines (27 loc) 901 B
import { factory } from '../utils/factory' const name = 'replacer' const dependencies = [] export const createReplacer = /* #__PURE__ */ 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) } } return value } })