@harmoniclabs/buildooor
Version:
Cardano transaction builder in typescript
36 lines (35 loc) • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stringify = exports.mkReplacer = void 0;
var obj_utils_1 = require("@harmoniclabs/obj-utils");
var uint8array_utils_1 = require("@harmoniclabs/uint8array-utils");
function mkReplacer(replacer, seen) {
if (seen === void 0) { seen = new WeakSet(); }
if (typeof replacer !== "function")
replacer = function (k, v) { return v; };
return function (key, value) {
value = replacer(key, value);
if ((0, obj_utils_1.isObject)(value)) {
if (seen.has(value)) {
return undefined;
}
seen.add(value);
if (typeof value.buffer === "object" && value.buffer instanceof ArrayBuffer) {
value = new Uint8Array(value.buffer);
}
if (value instanceof Uint8Array) {
value = (0, uint8array_utils_1.toHex)(value);
}
}
if (typeof value === "bigint") {
value = value.toString();
}
return value;
};
}
exports.mkReplacer = mkReplacer;
function stringify(value, replacer, space) {
if (space === void 0) { space = 0; }
return JSON.stringify(value, mkReplacer(replacer, new WeakSet()), space);
}
exports.stringify = stringify;