@tribecahq/registry
Version:
Registry of Tribeca DAOs.
40 lines • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.stableStringify = exports.makeSerializable = exports.jsonStringify = exports.serialize = void 0;
const tslib_1 = require("tslib");
const solana_contrib_1 = require("@saberhq/solana-contrib");
const token_utils_1 = require("@saberhq/token-utils");
const bn_js_1 = require("bn.js");
const fast_json_stable_stringify_1 = tslib_1.__importDefault(require("fast-json-stable-stringify"));
const serialize = (_key, value) => {
if (!value) {
return value;
}
if (token_utils_1.Percent.isPercent(value) || token_utils_1.Fraction.isFraction(value)) {
return {
formatted: value.toFixed(10),
numerator: value.numerator.toString(),
denominator: value.denominator.toString(),
};
}
try {
if (value && (0, bn_js_1.isBN)(value)) {
return value.toString();
}
}
catch (e) {
// nothing
}
if ((0, solana_contrib_1.isPublicKey)(value)) {
return value.toString();
}
return value;
};
exports.serialize = serialize;
const jsonStringify = (value) => JSON.stringify(value, exports.serialize, 2);
exports.jsonStringify = jsonStringify;
const makeSerializable = (value) => JSON.parse((0, exports.jsonStringify)(value));
exports.makeSerializable = makeSerializable;
const stableStringify = (value) => (0, exports.jsonStringify)(JSON.parse((0, fast_json_stable_stringify_1.default)((0, exports.makeSerializable)(value))));
exports.stableStringify = stableStringify;
//# sourceMappingURL=serialize.js.map