@snapdm/preconditions
Version:
General purpose preconditions for typesafe Typescript libraries
90 lines (86 loc) • 2.48 kB
JavaScript
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