|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.stringify = exports.parse = void 0;
- /**
- * @since 2.10.0
- */
- var Either_1 = require("./Either");
- var function_1 = require("./function");
- /**
- * Converts a JavaScript Object Notation (JSON) string into a `Json` type.
- *
- * @example
- * import * as J from 'fp-ts/Json'
- * import * as E from 'fp-ts/Either'
- * import { pipe } from 'fp-ts/function'
- *
- * assert.deepStrictEqual(pipe('{"a":1}', J.parse), E.right({ a: 1 }))
- * assert.deepStrictEqual(pipe('{"a":}', J.parse), E.left(new SyntaxError('Unexpected token } in JSON at position 5')))
- *
- * @since 2.10.0
- */
- var parse = function (s) { return (0, Either_1.tryCatch)(function () { return JSON.parse(s); }, function_1.identity); };
- exports.parse = parse;
- /**
- * Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
- *
- * @example
- * import * as E from 'fp-ts/Either'
- * import * as J from 'fp-ts/Json'
- * import { pipe } from 'fp-ts/function'
- *
- * assert.deepStrictEqual(J.stringify({ a: 1 }), E.right('{"a":1}'))
- * const circular: any = { ref: null }
- * circular.ref = circular
- * assert.deepStrictEqual(
- * pipe(
- * J.stringify(circular),
- * E.mapLeft(e => e instanceof Error && e.message.includes('Converting circular structure to JSON'))
- * ),
- * E.left(true)
- * )
- *
- * @since 2.10.0
- */
- var stringify = function (a) {
- return (0, Either_1.tryCatch)(function () {
- var s = JSON.stringify(a);
- if (typeof s !== 'string') {
- throw new Error('Converting unsupported structure to JSON');
- }
- return s;
- }, function_1.identity);
- };
- exports.stringify = stringify;
|