mirror of
https://github.com/tornadocash/snarkjs.git
synced 2024-06-17 09:53:34 +02:00
37 lines
955 B
JavaScript
37 lines
955 B
JavaScript
|
const bigInt = require("./bigint.js");
|
||
|
|
||
|
module.exports.stringifyBigInts = stringifyBigInts;
|
||
|
module.exports.unstringifyBigInts = unstringifyBigInts;
|
||
|
|
||
|
function stringifyBigInts(o) {
|
||
|
if ((typeof(o) == "bigint") || (o instanceof bigInt)) {
|
||
|
return o.toString(10);
|
||
|
} else if (Array.isArray(o)) {
|
||
|
return o.map(stringifyBigInts);
|
||
|
} else if (typeof o == "object") {
|
||
|
const res = {};
|
||
|
for (let k in o) {
|
||
|
res[k] = stringifyBigInts(o[k]);
|
||
|
}
|
||
|
return res;
|
||
|
} else {
|
||
|
return o;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function unstringifyBigInts(o) {
|
||
|
if ((typeof(o) == "string") && (/^[0-9]+$/.test(o) )) {
|
||
|
return bigInt(o);
|
||
|
} else if (Array.isArray(o)) {
|
||
|
return o.map(unstringifyBigInts);
|
||
|
} else if (typeof o == "object") {
|
||
|
const res = {};
|
||
|
for (let k in o) {
|
||
|
res[k] = unstringifyBigInts(o[k]);
|
||
|
}
|
||
|
return res;
|
||
|
} else {
|
||
|
return o;
|
||
|
}
|
||
|
}
|