1 | import { factory } from '../utils/factory.js';
|
2 | var name = 'replacer';
|
3 | var dependencies = [];
|
4 | export var createReplacer = /* #__PURE__ */factory(name, dependencies, () => {
|
5 | /**
|
6 | * Stringify data types into their JSON representation.
|
7 | * Most data types can be serialized using their `.toJSON` method,
|
8 | * but not all, for example the number `Infinity`. For these cases you have
|
9 | * to use the replacer. Example usage:
|
10 | *
|
11 | * JSON.stringify([2, Infinity], math.replacer)
|
12 | *
|
13 | * @param {string} key
|
14 | * @param {*} value
|
15 | * @returns {*} Returns the replaced object
|
16 | */
|
17 | return function replacer(key, value) {
|
18 | // the numeric values Infinitiy, -Infinity, and NaN cannot be serialized to JSON
|
19 | if (typeof value === 'number' && (!isFinite(value) || isNaN(value))) {
|
20 | return {
|
21 | mathjs: 'number',
|
22 | value: String(value)
|
23 | };
|
24 | }
|
25 |
|
26 | return value;
|
27 | };
|
28 | }); |
\ | No newline at end of file |