* Stringify a value as JSON with some differences: * - bigints are stringified as a json string. (`safeStringifyJson({ val: 1n })` outputs `'{ "val": "1" }'`). * This is because of a decision by TC39 to not support bigint in JSON.stringify https://github.com/tc39/proposal-bigint/issues/24 * *
(value /* : any */)
| 656 | * @returns {string} the resulting json. |
| 657 | */ |
| 658 | function safeStringifyJson(value /* : any */) /* : string */ { |
| 659 | return JSON.stringify(value, (key, value) => { |
| 660 | if (typeof value === 'bigint') { |
| 661 | return String(value); |
| 662 | } |
| 663 | |
| 664 | return value; |
| 665 | }); |
| 666 | } |
| 667 | |
| 668 | exports.safeStringifyJson = safeStringifyJson; |