iching-broker-level3/node_modules/ts-jest/dist/utils/json.js

43 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-03-31 12:27:20 +00:00
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = stringify;
exports.parse = parse;
exports.normalize = normalize;
var fast_json_stable_stringify_1 = __importDefault(require("fast-json-stable-stringify"));
var UNDEFINED = 'undefined';
function stringify(input) {
return input === undefined ? UNDEFINED : (0, fast_json_stable_stringify_1.default)(input);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
function parse(input) {
return input === UNDEFINED ? undefined : JSON.parse(input);
}
/**
* @internal
*/
function normalize(input, _a) {
var _b = _a === void 0 ? {} : _a, _c = _b.parse, parser = _c === void 0 ? parse : _c;
var result;
if (normalize.cache.has(input)) {
result = normalize.cache.get(input);
}
else {
var data = parser(input);
result = stringify(data);
if (result === input)
result = undefined;
normalize.cache.set(input, result);
}
return result !== null && result !== void 0 ? result : input;
}
/**
* @internal
*/
// eslint-disable-next-line @typescript-eslint/no-namespace
(function (normalize) {
normalize.cache = new Map();
})(normalize || (exports.normalize = normalize = {}));