UNPKG

@snapdm/preconditions

Version:

General purpose preconditions for typesafe Typescript libraries

90 lines (86 loc) 2.48 kB
function isDefined(value) { return value !== null && value !== void 0; } function isTruthy(value) { return !!value; } function isFalsy(value) { return !value; } function isUndefined(value) { return value === void 0; } function isNull(value) { return value === null; } function isBoolean(value) { return typeof value === "boolean"; } function isString(value) { return typeof value === "string"; } function isNumber(value) { return typeof value === "number"; } function isBigInt(value) { return typeof value === "bigint"; } function isFunction(value) { return typeof value === "function"; } function isObject(value) { return typeof value === "object"; } function isType(value, type) { return value instanceof type; } class PreconditionFailedError extends Error { constructor(message) { super(message); this.name = "PreconditionFailedError"; } } function assert(condition, message) { if (!condition) { throw new PreconditionFailedError(message); } } function assertPredicate(condition, value, message) { assert(condition(value), message); } function assertIsDefined(value, message) { assertPredicate(isDefined, value, message); } function assertIsUndefined(value, message) { assertPredicate(isUndefined, value, message); } function assertIsNull(value, message) { assertPredicate(isNull, value, message); } function assertIsBoolean(value, message) { assertPredicate(isBoolean, value, message); } function assertIsString(value, message) { assertPredicate(isString, value, message); } function assertIsNumber(value, message) { assertPredicate(isNumber, value, message); } function assertIsBigInt(value, message) { assertPredicate(isBigInt, value, message); } function assertIsFunction(value, message) { assertPredicate(isFunction, value, message); } function assertIsObject(value, message) { assertPredicate(isObject, value, message); } function assertIsType(value, type, message) { assert(isType(value, type), message); } function checkIsDefined(value, message) { assertIsDefined(value, message); return value; } export { PreconditionFailedError, assert, assertIsBigInt, assertIsBoolean, assertIsDefined, assertIsFunction, assertIsNull, assertIsNumber, assertIsObject, assertIsString, assertIsType, assertIsUndefined, assertPredicate, checkIsDefined, isBigInt, isBoolean, isDefined, isFalsy, isFunction, isNull, isNumber, isObject, isString, isTruthy, isType, isUndefined }; //# sourceMappingURL=index.esm.js.map