UNPKG

perlica

Version:

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

1,364 lines (899 loc) 25.5 kB
--- outline: deep --- # Predicate overview ## Instances ### Predicate ```ts export interface Predicate<T> { (value: T): boolean; } ``` ## Combinators ### not ```ts export const not = <T>(self: Predicate<T>): Predicate<T> ``` Returns `Predicate<T>` with negates result. ```ts import { not, isNumber } from "perlica/Predicate" const isNotNumber = not(isNumber); expect(isNotNumber(4)).toBeFalse(); expect(isNotNumber("hello")).toBeTrue(); ``` --- ### and ```ts export const and = <T>(self: Predicate<T>, that: Predicate<T>): Predicate<T> ``` Combines two predicates (`self` and `that`) into a new `Predicate<T>`.\ Returns `true` if both returns `true`, otherwise returns `false`. ```ts import { and } from "perlica/Predicate" import { lt, gt } from "perlica/Predicate/Number" const between5And10 = and(lt(10), gt(5)); expect(between5And10(7)).toBeTrue(); expect(between5And10(2)).toBeFalse(); expect(between5And10(12)).toBeFalse(); ``` --- ### or ```ts export const or = <T>(self: Predicate<T>, that: Predicate<T>): Predicate<T> ``` Combines two predicates (`self` and `that`) into a new `Predicate<T>`.\ Returns `true` if at least one returns `true`, otherwise returns `false`. ```ts import { or } from "perlica/Predicate" import { lt, gt} from "perlica/Predicate/Number" const less5OrGreater10 = or(lt(5), gt(10)); expect(less5OrGreater10(7)).toBeFalse(); expect(less5OrGreater10(2)).toBeTrue(); expect(less5OrGreater10(12)).toBeTrue(); ``` --- ### all ```ts export const all = <T>(predicates: Iterable<Predicate<T>>): Predicate<T> ``` Combining multiple `predicates` into a new `Predicate<T>`.\ Returns `true` if all returns `true`, otherwise returns `false`. ```ts import { all, isNumber } from "perlica/Predicate" import { lt, gt } from "perlica/Predicate/Number" const myNumber = all([isNumber, lt(10), gt(5)]); expect(myNumber(7)).toBeTrue(); expect(myNumber(2)).toBeFalse(); expect(myNumber(12)).toBeFalse(); ``` --- ### any ```ts export const any = <T>(predicates: Iterable<Predicate<T>>): Predicate<T> ``` Combining multiple `predicates` into a new `Predicate<T>`.\ Returns `true` if at least one returns `true`, otherwise returns `false`. ```ts import { any, isNumber, isString, isBoolean } from "perlica/Predicate" const isNumberOrStringOrBoolean = any([isNumber, isString, isBoolean]); expect(isNumberOrStringOrBoolean(4)).toBeTrue(); expect(isNumberOrStringOrBoolean("test")).toBeTrue(); expect(isNumberOrStringOrBoolean(true)).toBeTrue(); expect(isNumberOrStringOrBoolean(null)).toBeFalse(); expect(isNumberOrStringOrBoolean(undefined)).toBeFalse(); expect(isNumberOrStringOrBoolean({})).toBeFalse(); ``` ### eq ```ts export const eq = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is equal to a pre-defined `value`. ```ts import { eq } from "perlica/Predicate" const predicate = eq(5); expect(predicate(5)).toBeTrue(); expect(predicate(4)).toBeFalse(); ``` --- ### ne ```ts export const ne = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is not equal to a pre-defined `value`. ```ts import { ne } from "perlica/Predicate" const predicate = ne(5); expect(predicate(5)).toBeFalse(); expect(predicate(4)).toBeTrue(); ``` ## Guards ### isNull ```ts export const isNull = (value: unknown): value is null ``` Returns `true` if `value` is `null`, otherwise returns `false`. ```ts import { isNull } from "perlica/Predicate" expect(isNull(null)).toBeTrue(); expect(isNull(undefined)).toBeFalse(); expect(isNull(4)).toBeFalse(); expect(isNull("hello")).toBeFalse(); ``` --- ### isNotNull ```ts export const isNotNull = <T>(value: T): value is Exclude<T, null> ``` Returns `true` if `value` is not `null`, otherwise returns `false`. ```ts import { isNotNull } from "perlica/Predicate" expect(isNotNull(null)).toBeFalse(); expect(isNotNull(undefined)).toBeTrue(); expect(isNotNull(4)).toBeTrue(); expect(isNotNull("hello")).toBeTrue(); ``` --- ### isUndefined ```ts export const isUndefined = (value: unknown): value is undefined ``` Returns `true` if `value` is `undefined`, otherwise returns `false`. ```ts import { isUndefined } from "perlica/Predicate" expect(isUndefined(null)).toBeFalse(); expect(isUndefined(undefined)).toBeTrue(); expect(isUndefined(4)).toBeFalse(); expect(isUndefined("hello")).toBeFalse(); ``` --- ### isNotUndefined ```ts export const isNotUndefined = <T>(value: T): value is Exclude<T, undefined> ``` Returns `true` if `value` is not `undefined`, otherwise returns `false`. ```ts import { isNotUndefined } from "perlica/Predicate" expect(isNotUndefined(null)).toBeTrue(); expect(isNotUndefined(undefined)).toBeFalse(); expect(isNotUndefined(4)).toBeTrue(); expect(isNotUndefined("hello")).toBeTrue(); ``` --- ### isBoolean ```ts export const isBoolean = (value: unknown): value is boolean ``` Returns `true` if `value` is `true` or `false`, otherwise returns `false`. ```ts import { isBoolean } from "perlica/Predicate" expect(isBoolean(true)).toBeTrue(); expect(isBoolean(false)).toBeTrue(); expect(isBoolean(null)).toBeFalse(); expect(isBoolean(4)).toBeFalse(); ``` --- ### isNumber ```ts export const isNumber = (value: unknown): value is number ``` Returns `true` if `value` is `number`, otherwise returns `false`. ```ts import { isNumber } from "perlica/Predicate" expect(isNumber(4)).toBeTrue(); expect(isNumber(4.4)).toBeTrue(); expect(isNumber(null)).toBeFalse(); expect(isNumber(true)).toBeFalse(); expect(isNumber("hello")).toBeFalse(); ``` --- ### isInteger ```ts export const isInteger = (value: unknown): value is number ``` Returns `true` if `value` is `integer`, otherwise returns `false`. ```ts import { isInteger } from "perlica/Predicate" expect(isInteger(4)).toBeTrue(); expect(isInteger(4.4)).toBeFalse(); ``` --- ### isBigInt ```ts export const isInteger = (value: unknown): value is number ``` Returns `true` if `value` is `bigint`, otherwise returns `false`. ```ts import { isBigInt } from "perlica/Predicate" expect(isBigInt(4)).toBeFalse(); expect(isBigInt(4n)).toBeTrue(); ``` --- ### isString ```ts export const isString = (value: unknown): value is string ``` Returns `true` if `value` is `string`, otherwise returns `false`. ```ts import { isString } from "perlica/Predicate" expect(isString("hello")).toBeTrue(); expect(isString(4)).toBeFalse(); expect(isString(null)).toBeFalse(); expect(isString(true)).toBeFalse(); ``` --- ### isFunction ```ts export const isFunction = (value: unknown): value is Function ``` Returns `true` if `value` is `Function`, otherwise returns `false`. ```ts import { isFunction } from "perlica/Predicate" expect(isFunction(isFunction)).toBeTrue(); expect(isFunction("isFunction")).toBeFalse(); ``` --- ### isSymbol ```ts export const isSymbol = (value: unknown): value is symbol ``` Returns `true` if `value` is `symbol`, otherwise returns `false`. ```ts import { isSymbol } from "perlica/Predicate" expect(isSymbol(Symbol.for("a"))).toBeTrue(); expect(isSymbol("a")).toBeFalse(); ``` --- ### isTruthy ```ts export const isTruthy = (value: unknown): boolean ``` Returns `true` if `value` is not `symbol`, otherwise returns `false`. ```ts import { isTruthy } from "perlica/Predicate" expect(isTruthy(1)).toBeTrue(); expect(isTruthy("a")).toBeTrue(); expect(isTruthy(0)).toBeFalse(); expect(isTruthy("")).toBeFalse(); ``` --- ### isSet ```ts export const isSet = (value: unknown): value is Set<unknown> ``` Returns `true` if `value` is `Set`, otherwise returns `false`. ```ts import { isSet } from "perlica/Predicate" expect(isSet(new Set())).toBeTrue(); expect(isSet({})).toBeFalse(); ``` --- ### isMap ```ts export const isMap = (value: unknown): value is Map<unknown, unknown> ``` Returns `true` if `value` is `Map`, otherwise returns `false`. ```ts import { isMap } from "perlica/Predicate" expect(isMap(new Map())).toBeTrue(); expect(isMap({})).toBeFalse(); ``` --- ### isError ```ts export const isError = (value: unknown): value is Error ``` Returns `true` if `value` is `Error`, otherwise returns `false`. ```ts import { isError } from "perlica/Predicate" expect(isError(new Error())).toBeTrue(); expect(isError({})).toBeFalse(); expect(isError(null)).toBeFalse(); expect(isError(undefined)).toBeFalse(); ``` --- ### isNullable ```ts export const isNullable = <T>(value: T): value is Extract<T, null | undefined> ``` Returns `true` if `value` is `null` or `undefined`, otherwise returns `false`. ```ts import { isNullable } from "perlica/Predicate" expect(isNullable(null)).toBeTrue(); expect(isNullable(undefined)).toBeTrue(); expect(isNullable(4)).toBeFalse(); ``` --- ### isNotNullable ```ts export const isNotNullable = <T>(value: T): value is NonNullable<T> ``` Returns `true` if `value` is not `null` and not `undefined`, otherwise returns `false`. ```ts import { isNotNullable } from "perlica/Predicate" expect(isNotNullable(null)).toBeFalse(); expect(isNotNullable(undefined)).toBeFalse(); expect(isNotNullable(4)).toBeTrue(); ``` --- ### isPromise ```ts export const isPromise = (value: unknown): value is Promise<unknown> ``` Returns `true` if `value` is `Promise`, otherwise returns `false`. ```ts import { IsPromise } from "perlica/Predicate" expect(IsPromise(Promise.resolve(4))).toBeTrue(); expect(IsPromise(4)).toBeFalse(); ``` --- ### isRegExp ```ts export const isRegExp = (value: unknown): value is RegExp ``` Returns `true` if `value` is `RegExp`, otherwise returns `false`. ```ts import { isRegExp } from "perlica/Predicate" expect(isRegExp(/4/)).toBeTrue(); expect(isRegExp(4)).toBeFalse(); ``` --- ### isDate ```ts export const isDate = (value: unknown): value is Date ``` Returns `true` if `value` is `Date`, otherwise returns `false`. ```ts import { isDate } from "perlica/Predicate" expect(isDate(new Date())).toBeTrue(); expect(isDate({})).toBeFalse(); ``` --- ### isRecordOrArray ```ts export const isRecordOrArray = (value: unknown): value is { [x: PropertyKey]: unknown } ``` Returns `true` if `value` is `record` or `array`, otherwise returns `false`. ```ts import { isRecordOrArray } from "perlica/Predicate" expect(isRecordOrArray({})).toBeTrue(); expect(isRecordOrArray([])).toBeTrue(); expect(isRecordOrArray(null)).toBeFalse(); expect(isRecordOrArray(undefined)).toBeFalse(); expect(isRecordOrArray(4)).toBeFalse(); ``` --- ### isObject ```ts export const isObject = (value: unknown): value is object ``` Returns `true` if `value` is `object` (`record`, `array`, `function`), otherwise returns `false`. ```ts import { isObject } from "perlica/Predicate" expect(isObject({})).toBeTrue(); expect(isObject([])).toBeTrue(); expect(isObject(() => {})).toBeTrue(); expect(isObject(null)).toBeFalse(); expect(isObject(undefined)).toBeFalse(); expect(isObject(4)).toBeFalse(); ``` --- ### hasProperty ```ts export const hasProperty = <P extends PropertyKey>( value: unknown, property: P, ): value is { [K in P]: unknown } ``` Returns `true` if `value` is object and containing a `property` key, otherwise returns `false`. ```ts import { hasProperty } from "perlica/Predicate" expect(hasProperty({}, "test")).toBeFalse(); expect(hasProperty("test", "test")).toBeFalse(); expect(hasProperty({ test: 4 }, "test")).toBeTrue(); ``` --- ### isIterable ```ts export const isIterable = (value: unknown): value is Iterable<unknown> ``` Returns `true` if `value` is object and containing a `Symbol.iterator` key, otherwise returns `false`. ```ts import { isIterable } from "perlica/Predicate" expect(isIterable([])).toBeTrue(); expect(isIterable({})).toBeFalse(); ``` --- ### isAsyncIterable ```ts export const isAsyncIterable = (value: unknown): value is AsyncIterable<unknown> ``` Returns `true` if `value` is object and containing a `Symbol.asyncIterator` key, otherwise returns `false`. ```ts import { isAsyncIterable } from "perlica/Predicate" expect(isAsyncIterable({ [Symbol.asyncIterator]() {} })).toBeTrue(); expect(isAsyncIterable({})).toBeFalse(); ``` --- ### isTypedArray ```ts export const isTypedArray = (value: unknown): value is TypedArray ``` Returns `true` if `value` is `TypedArray`, otherwise returns `false`. --- ### isInt8Array ```ts export const isInt8Array = (value: unknown): value is Int8Array ``` Returns `true` if `value` is `Int8Array`, otherwise returns `false`. --- ### isUint8Array ```ts export const isUint8Array = (value: unknown): value is Uint8Array ``` Returns `true` if `value` is `Uint8Array`, otherwise returns `false`. --- ### isUint8ClampedArray ```ts export const isUint8ClampedArray = (value: unknown): value is Uint8ClampedArray ``` Returns `true` if `value` is `Uint8ClampedArray`, otherwise returns `false`. --- ### isInt16Array ```ts export const isInt16Array = (value: unknown): value is Int16Array ``` Returns `true` if `value` is `Int16Array`, otherwise returns `false`. --- ### isUint16Array ```ts export const isUint16Array = (value: unknown): value is Uint16Array ``` Returns `true` if `value` is `Uint16Array`, otherwise returns `false`. --- ### isInt32Array ```ts export const isInt32Array = (value: unknown): value is Int32Array ``` Returns `true` if `value` is `Int32Array`, otherwise returns `false`. --- ### isUint32Array ```ts export const isUint32Array = (value: unknown): value is Uint32Array ``` Returns `true` if `value` is `Uint32Array`, otherwise returns `false`. --- ### isFloat32Array ```ts export const isFloat32Array = (value: unknown): value is Float32Array ``` Returns `true` if `value` is `Float32Array`, otherwise returns `false`. --- ### isFloat64Array ```ts export const isFloat64Array = (value: unknown): value is Float64Array ``` Returns `true` if `value` is `Float64Array`, otherwise returns `false`. --- ### isBigInt64Array ```ts export const isBigInt64Array = (value: unknown): value is BigInt64Array ``` Returns `true` if `value` is `BigInt64Array`, otherwise returns `false`. --- ### isBigUint64Array ```ts export const isBigUint64Array = (value: unknown): value is BigUint64Array ``` Returns `true` if `value` is `BigUint64Array`, otherwise returns `false` ## String ### isEmpty ```ts export const isEmpty = (self: string): self is "" ``` Returns `true` if `self` is empty, otherwise returns `false`. ```ts import { isEmpty } from "perlica/Predicate/String" expect(isEmpty("hello")).toBeFalse(); expect(isEmpty("")).toBeTrue(); ``` --- ### includes ```ts export const includes = (searchString: string, position?: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `searchString` appears as a substring of `self`, otherwise returns `false`. ```ts import { includes } from "perlica/Predicate/String" const predicate = includes("test"); expect(predicate("Hello test world")).toBeTrue(); expect(predicate("Hello world")).toBeFalse(); ``` --- ### startsWith ```ts export const startsWith = (searchString: string, position?: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `searchString` starts with a `self`, otherwise returns `false`. ```ts import { startsWith } from "perlica/Predicate/String" const predicate = startsWith("test"); expect(predicate("test world")).toBeTrue(); expect(predicate("world")).toBeFalse(); ``` --- ### endsWith ```ts export const endsWith = (searchString: string, position?: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `searchString` ends with a `self`, otherwise returns `false`. ```ts import { endsWith } from "perlica/Predicate/String" const predicate = endsWith("test"); expect(predicate("world test")).toBeTrue(); expect(predicate("world")).toBeFalse(); ``` --- ### isMatch ```ts export const isMatch = (regexp: RegExp): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if a regular expression (`regexp`) to match `self`, otherwise returns `false`. ```ts import { isMatch } from "perlica/Predicate/String" const predicate = isMatch(/Hello.*/); expect(predicate("Hello world")).toBeTrue(); expect(predicate("Fello world")).toBeFalse(); ``` --- ### max ```ts export const maxLen = (count: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is length less or equal to a pre-defined `count`. ```ts import { max } from "perlica/Predicate/String" const predicate = max(5); expect(predicate("Hello")).toBeTrue(); expect(predicate("Hello world")).toBeFalse(); ``` --- ### min ```ts export const minLen = (count: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is length greater or equal to a pre-defined `count`. ```ts import { min } from "perlica/Predicate/String" const predicate = min(5); expect(predicate("Hello")).toBeTrue(); expect(predicate("Hello world")).toBeFalse(); ``` --- ### len ```ts export const len = (count: number): Predicate<string> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is length equal to a pre-defined `count`. ```ts import { len } from "perlica/Predicate/String" const predicate = len(5); expect(predicate("Hello")).toBeTrue(); expect(predicate("Hi")).toBeFalse(); expect(predicate("Hello world")).toBeFalse(); ``` ## Array ### isEmpty ```ts export const isEmpty = <T>(self: T[]): self is [] ``` Returns `true` if `self` is empty, otherwise returns `false`. ```ts import { isEmpty } from "perlica/Predicate/Array" * expect(isEmpty([4])).toBeFalse(); expect(isEmpty([])).toBeTrue(); ``` --- ### isNonEmpty ```ts export const isNonEmpty = <T>(self: T[]): self is [T, ...T[]] ``` Returns `true` if `self` is not empty, otherwise returns `false`. ```ts import { isNonEmpty } from "perlica/Predicate/Array" * expect(isEmpty([4])).toBeTrue(); expect(isEmpty([])).toBeFalse(); ``` --- ### max ```ts export const maxLen = <T>(count: number): predicate.Predicate<T[]> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is length less or equal to a pre-defined `count`. ```ts import { max } from "perlica/Predicate/Array" const predicate = max(5); expect(predicate([1, 2, 3, 4])).toBeTrue(); expect(predicate([1, 2, 3, 4, 5])).toBeFalse(); ``` --- ### min ```ts export const minLen = <T>(count: number): Predicate<T[]> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is length greater or equal to a pre-defined `count`. ```ts import { min } from "perlica/Predicate/Array" const predicate = min(4); expect(predicate([1, 2, 3, 4])).toBeTrue(); expect(predicate([1, 2, 3])).toBeFalse(); ``` --- ### len ```ts export const len = <T>(count: number): Predicate<T[]> ``` Returns a new `Predicate<T>`.\ Return `true` if `value` is length equal to a pre-defined `count`. ```ts import { len } from "perlica/Predicate/Array" const predicate = len(4); expect(predicate([1, 2, 3, 4])).toBeTrue(); expect(predicate([1, 2])).toBeFalse(); expect(predicate([1, 2, 3, 4, 5])).toBeFalse(); ``` ## Number ### isPositive ```ts export const isPositive = (value: number): boolean ``` Returns `true` if `value > 0`, otherwise returns `false`. ```ts import { isPositive } from "perlica/Predicate/Number" expect(isPositive(0)).toBeFalse(); expect(isPositive(4)).toBeTrue(); expect(isPositive(-4)).toBeFalse(); ``` --- ### isNonNegative ```ts export const isNonNegative = (value: number): boolean ``` Returns `true` if `value >= 0`, otherwise returns `false`. ```ts import { isNonNegative } from "perlica/Predicate/Number" expect(isNonNegative(0)).toBeTrue(); expect(isNonNegative(4)).toBeTrue(); expect(isNonNegative(-4)).toBeFalse(); ``` --- ### isNegative ```ts export const isNegative = (value: number): boolean ``` Returns `true` if `value < 0`, otherwise returns `false`. ```ts import { isNegative } from "perlica/Predicate/Number" expect(isNegative(0)).toBeFalse(); expect(isNegative(4)).toBeFalse(); expect(isNegative(-4)).toBeTrue(); ``` --- ### isNonPositive ```ts export const isNonPositive = (value: number): boolean ``` Returns `true` if `value <= 0`, otherwise returns `false`. ```ts import { isNonPositive } from "perlica/Predicate/Number" expect(isNonPositive(0)).toBeTrue(); expect(isNonPositive(4)).toBeFalse(); expect(isNonPositive(-4)).toBeTrue(); ``` --- ### isFinite ```ts export const isFinite = (value: number): boolean ``` Returns `true` if `value` is finite, not `Infinity` or `-Infinity`, otherwise returns `false`. ```ts import { isFinite } from "perlica/Predicate/Number" expect(isFinite(4 / 2)).toBeTrue(); expect(isFinite(4 / 0)).toBeFalse(); ``` --- ### multipleOf ```ts export const multipleOf = (that: number): Predicate<number> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is evenly divisible by a pre-defined `that`. ```ts import { multipleOf } from "perlica/Predicate/Number" const predicate = multipleOf(2); expect(predicate(4)).toBeTrue(); expect(predicate(3)).toBeFalse(); ``` --- ### lt ```ts export const lt = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is less than a pre-defined `value`. ```ts import { lt } from "perlica/Predicate/Number" const predicate = lt(4); expect(predicate(5)).toBeFalse(); expect(predicate(4)).toBeFalse(); expect(predicate(3)).toBeTrue(); ``` --- ### gt ```ts export const gt = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is greater than a pre-defined `value`. ```ts import { gt } from "perlica/Predicate/Number" const predicate = gt(4); expect(predicate(5)).toBeTrue(); expect(predicate(4)).toBeFalse(); expect(predicate(3)).toBeFalse(); ``` --- ### le ```ts export const le = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is less than or equal to a pre-defined `value`. ```ts import { le } from "perlica/Predicate/Number" const predicate = le(4); expect(predicate(5)).toBeFalse(); expect(predicate(4)).toBeTrue(); expect(predicate(3)).toBeTrue(); ``` --- ### ge ```ts export const ge = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is greater than or equal to a pre-defined `value`. ```ts import { ge } from "perlica/Predicate/Number" const predicate = ge(4); expect(predicate(5)).toBeTrue(); expect(predicate(4)).toBeTrue(); expect(predicate(3)).toBeFalse(); ``` ## BigInt ### isPositive ```ts export const isPositive = (value: number): boolean ``` Returns `true` if `value > 0`, otherwise returns `false`. ```ts import { isPositive } from "perlica/Predicate/BigInt" expect(isPositive(0n)).toBeFalse(); expect(isPositive(4n)).toBeTrue(); expect(isPositive(-4n)).toBeFalse(); ``` --- ### isNonNegative ```ts export const isNonNegative = (value: number): boolean ``` Returns `true` if `value >= 0`, otherwise returns `false`. ```ts import { isNonNegative } from "perlica/Predicate/BigInt" expect(isNonNegative(0n)).toBeTrue(); expect(isNonNegative(4n)).toBeTrue(); expect(isNonNegative(-4n)).toBeFalse(); ``` --- ### isNegative ```ts export const isNegative = (value: number): boolean ``` Returns `true` if `value < 0`, otherwise returns `false`. ```ts import { isNegative } from "perlica/Predicate/BigInt" expect(isNegative(0n)).toBeFalse(); expect(isNegative(4n)).toBeFalse(); expect(isNegative(-4n)).toBeTrue(); ``` --- ### isNonPositive ```ts export const isNonPositive = (value: number): boolean ``` Returns `true` if `value <= 0`, otherwise returns `false`. ```ts import { isNonPositive } from "perlica/Predicate/BigInt" expect(isNonPositive(0n)).toBeTrue(); expect(isNonPositive(4n)).toBeFalse(); expect(isNonPositive(-4n)).toBeTrue(); ``` --- ### multipleOf ```ts export const multipleOf = (that: number): Predicate<number> ``` Returns a new `Predicate<T>`.\ Returns `true` if `value` is evenly divisible by a pre-defined `that`. ```ts import { multipleOf } from "perlica/Predicate/BigInt" const predicate = multipleOf(2); expect(predicate(4n)).toBeTrue(); expect(predicate(3n)).toBeFalse(); ``` ### lt ```ts export const lt = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is less than a pre-defined `value`. ```ts import { lt } from "perlica/Predicate/BigInt" const predicate = lt(4); expect(predicate(5n)).toBeFalse(); expect(predicate(4n)).toBeFalse(); expect(predicate(3n)).toBeTrue(); ``` --- ### gt ```ts export const gt = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is greater than a pre-defined `value`. ```ts import { gt } from "perlica/Predicate/BigInt" const predicate = gt(4); expect(predicate(5n)).toBeTrue(); expect(predicate(4n)).toBeFalse(); expect(predicate(3n)).toBeFalse(); ``` --- ### le ```ts export const le = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is less than or equal to a pre-defined `value`. ```ts import { le } from "perlica/Predicate/BigInt" const predicate = le(4); expect(predicate(5n)).toBeFalse(); expect(predicate(4n)).toBeTrue(); expect(predicate(3n)).toBeTrue(); ``` --- ### ge ```ts export const ge = <T>(that: T): Predicate<T> ``` Returns a new `Predicate<T>`.\ Returns `true` if `that` is greater than or equal to a pre-defined `value`. ```ts import { ge } from "perlica/Predicate/BigInt" const predicate = ge(4); expect(predicate(5n)).toBeTrue(); expect(predicate(4n)).toBeTrue(); expect(predicate(3n)).toBeFalse(); ```