UNPKG

@alexkeating/common-utilities

Version:

Our **Common Utilities** package is a set of helper tools and utilities that are used throughout our libraries and apps. This includes things like our constants, types that are commonly shared across packages, and various utilities and helper functions.

30 lines 1.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isLengthOf = exports.isNumberString = exports.isArgType = exports.isEthAddress = exports.isNumberish = exports.isBoolean = exports.isString = exports.isNumber = exports.isArray = void 0; const ethers_1 = require("ethers"); // TS user-defined typeguards const isArray = (item) => Array.isArray(item); exports.isArray = isArray; const isNumber = (item) => typeof item === 'number'; exports.isNumber = isNumber; const isString = (item) => typeof item === 'string'; exports.isString = isString; const isBoolean = (item) => typeof item === 'boolean'; exports.isBoolean = isBoolean; const isNumberish = (item) => (0, exports.isNumber)(item) || (0, exports.isNumberString)(item); exports.isNumberish = isNumberish; const isEthAddress = (item) => (0, exports.isString)(item) && ethers_1.ethers.utils.isAddress(item); exports.isEthAddress = isEthAddress; // general 'is' guards that help us verify shapes of data const isArgType = (item) => { if ((0, exports.isArray)(item)) { return item.every(exports.isArgType); } return (0, exports.isString)(item) || (0, exports.isNumber)(item) || (0, exports.isBoolean)(item); }; exports.isArgType = isArgType; const isNumberString = (item) => (0, exports.isString)(item) && !isNaN(parseFloat(item)) && isFinite(Number(item)); exports.isNumberString = isNumberString; const isLengthOf = (item, length) => (0, exports.isArray)(item) && item.length === length; exports.isLengthOf = isLengthOf; //# sourceMappingURL=typeguards.js.map