UNPKG

perlica

Version:

<h1 align="center">Perlica</h1>

88 lines (87 loc) 2.56 kB
// src/Predicate/index.ts var not = (self) => (value) => !self(value); var and = (self, that) => (value) => self(value) && that(value); var or = (self, that) => (value) => self(value) || that(value); var all = (predicates) => { return (value) => { for (const p of predicates) { if (p(value) === false) { return false; } } return true; }; }; var any = (predicates) => { return (value) => { for (const p of predicates) { if (p(value) === true) { return true; } } return false; }; }; var eq = (that) => (value) => value === that; var ne = (that) => (value) => value !== that; var isTruthy = (value) => !!value; var isNull = (value) => value === null; var isNotNull = (value) => value !== null; var isUndefined = (value) => value === void 0; var isNotUndefined = (value) => value !== void 0; var isBoolean = (value) => typeof value === "boolean"; var isNumber = (value) => typeof value === "number"; var isInteger = (value) => Number.isInteger(value); var isBigInt = (value) => typeof value === "bigint"; var isString = (value) => typeof value === "string"; var isArray = (value) => Array.isArray(value); var isFunction = (value) => typeof value === "function"; var isSymbol = (value) => typeof value === "symbol"; var isSet = (value) => value instanceof Set; var isMap = (value) => value instanceof Map; var isRegExp = (value) => value instanceof RegExp; var isError = (value) => value instanceof Error; var isNullable = (value) => isNull(value) || isUndefined(value); var isNotNullable = (value) => isNotNull(value) && isNotUndefined(value); var isPromise = (value) => hasProperty(value, "then") && hasProperty(value, "catch") && isFunction(value.then) && isFunction(value.catch); var isDate = (value) => value instanceof Date; var isRecordOrArray = (value) => typeof value === "object" && isNotNull(value); var isObject = (value) => isRecordOrArray(value) || isFunction(value); var hasProperty = (value, property) => isObject(value) && property in value; var isIterable = (value) => hasProperty(value, Symbol.iterator); var isAsyncIterable = (value) => hasProperty(value, Symbol.asyncIterator); export { all, and, any, eq, hasProperty, isArray, isAsyncIterable, isBigInt, isBoolean, isDate, isError, isFunction, isInteger, isIterable, isMap, isNotNull, isNotNullable, isNotUndefined, isNull, isNullable, isNumber, isObject, isPromise, isRecordOrArray, isRegExp, isSet, isString, isSymbol, isTruthy, isUndefined, ne, not, or };