reliable-zeromq
Version:
A collection of reliable zeromq messaging constructs
52 lines • 3.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class JSONBigInt {
static ParseReviver(aKey, aValue) {
// Only consider strings that are all digits and end in letter "n" e.g. 10675364n
// considers negative values as well
if (typeof aValue === "string") {
const lLength = aValue.length;
if (lLength > 1 && aValue[lLength - 1] === "n") {
let lAllDigits = true;
for (let i = 0; i < lLength - 1 && lAllDigits; i++) {
const lValue = aValue[i];
lAllDigits = lAllDigits && ((lValue >= "0" && lValue <= "9") || ((i === 0) && lValue === "-"));
}
if (lAllDigits) {
return BigInt(aValue.slice(0, -1));
}
}
}
return aValue;
}
static StringifyReplacer(aKey, aValue) {
if (typeof aValue === "bigint") {
return aValue.toString() + "n";
}
else {
return aValue;
}
}
static Parse(aString) {
switch (aString) {
case "undefined":
return undefined;
case "null":
return null;
default:
return JSON.parse(aString, JSONBigInt.ParseReviver);
}
}
static Stringify(aValue) {
switch (aValue) {
case undefined:
return "undefined";
case null:
return "null";
default:
return JSON.stringify(aValue, JSONBigInt.StringifyReplacer);
}
}
}
exports.default = JSONBigInt;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSlNPTkJpZ0ludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL1NyYy9VdGlscy9KU09OQmlnSW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBcUIsVUFBVTtJQUVuQixNQUFNLENBQUMsWUFBWSxDQUFDLElBQVMsRUFBRSxNQUFXO1FBRTlDLGlGQUFpRjtRQUNqRixvQ0FBb0M7UUFFcEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQzlCO1lBQ0ksTUFBTSxPQUFPLEdBQVcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUV0QyxJQUFJLE9BQU8sR0FBRyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQzlDO2dCQUNJLElBQUksVUFBVSxHQUFZLElBQUksQ0FBQztnQkFDL0IsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLElBQUksVUFBVSxFQUFFLENBQUMsRUFBRSxFQUMxRDtvQkFDSSxNQUFNLE1BQU0sR0FBVyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pDLFVBQVUsR0FBRyxVQUFVLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQ2xHO2dCQUVELElBQUksVUFBVSxFQUNkO29CQUNJLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFTLEVBQUUsTUFBVztRQUVuRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFDOUI7WUFDSSxPQUFPLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxHQUFHLENBQUM7U0FDbEM7YUFFRDtZQUNJLE9BQU8sTUFBTSxDQUFDO1NBQ2pCO0lBQ0wsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBZTtRQUUvQixRQUFRLE9BQU8sRUFDZjtZQUNJLEtBQUssV0FBVztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLE1BQU07Z0JBQ1AsT0FBTyxJQUFJLENBQUM7WUFDaEI7Z0JBQ0ksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFXO1FBRS9CLFFBQVEsTUFBTSxFQUNkO1lBQ0ksS0FBSyxTQUFTO2dCQUNWLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssSUFBSTtnQkFDTCxPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ25FO0lBQ0wsQ0FBQztDQUNKO0FBbEVELDZCQWtFQyJ9