@meterio/flex-framework
Version:
A library implements Meter Flex interface
103 lines • 7.3 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.string = exports.address = exports.hexString = exports.bigInt = exports.bool = exports.uint64 = exports.uint32 = exports.uint8 = exports.bytes32 = exports.bytes8 = exports.bytes = exports.test = exports.ensure = exports.BadParameter = exports.isBigInt = exports.isUInt = exports.isHexBytes = exports.isHexString = exports.isDecString = void 0;
function isDecString(val) {
return typeof val === 'string' && /^[0-9]+$/.test(val);
}
exports.isDecString = isDecString;
function isHexString(val) {
return typeof val === 'string' && /^0x[0-9a-f]+$/i.test(val);
}
exports.isHexString = isHexString;
function isHexBytes(val, n) {
if (typeof val !== 'string' || !/^0x[0-9a-f]*$/i.test(val)) {
return false;
}
return n ? val.length === n * 2 + 2 : val.length % 2 === 0;
}
exports.isHexBytes = isHexBytes;
function isUInt(val, bit) {
if (val < 0 || !Number.isInteger(val)) {
return false;
}
return bit ? val < Math.pow(2, bit) : true;
}
exports.isUInt = isUInt;
function isBigInt(v) {
return typeof v === 'string' ?
(isDecString(v) || isHexString(v)) :
isUInt(v, 0);
}
exports.isBigInt = isBigInt;
class BadParameter extends Error {
constructor(msg) {
super(msg);
}
}
exports.BadParameter = BadParameter;
BadParameter.prototype.name = 'BadParameter';
function ensure(b, msg) {
if (!b) {
throw new BadParameter(msg);
}
}
exports.ensure = ensure;
const V = require("validator-ts");
function test(value, scheme, context) {
try {
return V.validate(value, scheme, context);
}
catch (err) {
if (err instanceof V.ValidationError) {
throw new BadParameter(err.message);
}
throw err;
}
}
exports.test = test;
// rules
function bytes(v) {
return isHexBytes(v) ? '' : 'expected bytes in hex string';
}
exports.bytes = bytes;
function bytes8(v) {
return isHexBytes(v, 8) ? '' : 'expected bytes8';
}
exports.bytes8 = bytes8;
function bytes32(v) {
return isHexBytes(v, 32) ? '' : 'expected bytes32';
}
exports.bytes32 = bytes32;
function uint8(v) {
return isUInt(v, 8) ? '' : 'expected 8-bit unsigned integer';
}
exports.uint8 = uint8;
function uint32(v) {
return isUInt(v, 32) ? '' : 'expected 32-bit unsigned integer';
}
exports.uint32 = uint32;
function uint64(v) {
return isUInt(v, 64) ? '' : 'expected 64-bit unsigned integer';
}
exports.uint64 = uint64;
function bool(v) {
return typeof v === 'boolean' ? '' : 'expected boolean';
}
exports.bool = bool;
function bigInt(v) {
return isBigInt(v) ? '' : 'expected unsigned integer in number or string';
}
exports.bigInt = bigInt;
function hexString(v) {
return isHexString(v) ? '' : 'expected integer in hex string';
}
exports.hexString = hexString;
function address(v) {
return isHexBytes(v, 20) ? '' : 'expected address';
}
exports.address = address;
function string(v) {
return typeof v === 'string' ? '' : 'expected string';
}
exports.string = string;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZnJhbWV3b3JrL3J1bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ25DLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDMUQsQ0FBQztBQUZELGtDQUVDO0FBRUQsU0FBZ0IsV0FBVyxDQUFDLEdBQVc7SUFDbkMsT0FBTyxPQUFPLEdBQUcsS0FBSyxRQUFRLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ2hFLENBQUM7QUFGRCxrQ0FFQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxHQUFXLEVBQUUsQ0FBVTtJQUM5QyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4RCxPQUFPLEtBQUssQ0FBQTtLQUNmO0lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtBQUM5RCxDQUFDO0FBTEQsZ0NBS0M7QUFFRCxTQUFnQixNQUFNLENBQUMsR0FBVyxFQUFFLEdBQVc7SUFDM0MsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNuQyxPQUFPLEtBQUssQ0FBQTtLQUNmO0lBQ0QsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxTQUFBLENBQUMsRUFBSSxHQUFHLENBQUEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0FBQ3RDLENBQUM7QUFMRCx3QkFLQztBQUVELFNB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
;