You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@proc7ts/primitives

Package Overview
Dependencies
Maintainers
1
Versions
29
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@proc7ts/primitives - npm Package Compare versions

Comparing version
3.0.1
to
3.0.2
+1
-1
dist/primitives.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"primitives.js","sources":["../src/array/array-of-elements.ts","../src/value/are-the-same.ts","../src/value/async-recipe.ts","../src/value/value-providers.ts","../src/value/lazy-value.ts","../src/value/value-recipe.ts","../src/array/arrays-are-equal.ts","../src/array/element-or-array.ts","../src/array/set-of-elements.ts","../src/class/super-class-of.ts","../src/fn/asis.ts","../src/fn/count-args.ts","../src/fn/merge-functions.ts","../src/fn/noop.ts","../src/object/has-own-property.ts","../src/object/properties-are-equal.ts","../src/promises/promise-resolver.ts","../src/type/is-array-like.ts","../src/type/is-iterable.ts","../src/type/presence.ts"],"sourcesContent":["/**\n * Checks whether the given value is an array.\n *\n * @param value - Either element, array of elements, `null`, or `undefined`.\n *\n * @returns `true` if the given `value` is an array, or `false` otherwise.\n */\nexport function isArrayOfElements<T>(value: T | T[] | null | undefined): value is T[];\n\n/**\n * Checks whether the given value is a readonly array.\n *\n * @param value - Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns `true` if the given `value` is an array, or `false` otherwise.\n */\nexport function isArrayOfElements<T>(value: T | readonly T[] | null | undefined): value is readonly T[];\n\nexport function isArrayOfElements<T>(value: T | readonly T[] | null | undefined): value is T[] {\n return Array.isArray(value);\n}\n\n/**\n * Converts element or array of elements to array of elements.\n *\n * @param value - Either element, array of elements, `null`, or `undefined`.\n *\n * @returns The `value` itself if it is an array, empty array if `value` is `null` or `undefined`, or an array\n * containing only `value` otherwise.\n */\nexport function arrayOfElements<T>(value: T | T[] | null | undefined): T[];\n\n/**\n * Converts element or readonly array of elements to readonly array of elements.\n *\n * @param value - Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns The `value` itself if it is an array, empty array if the `value` is `null` or `undefined`, or an array\n * containing only `value` otherwise.\n */\nexport function arrayOfElements<T>(value: T | readonly T[] | null | undefined): readonly T[];\n\nexport function arrayOfElements<T>(value: T | T[] | null | undefined): T[] {\n return (/*#__INLINE__*/ isArrayOfElements(value)) ? value : value != null ? [value] : [];\n}\n","/**\n * Checks whether two values are the same. I.e. strictly equal to each other.\n *\n * @typeParam T - A type of values.\n * @param first - First value to compare.\n * @param second - Second value to compare.\n *\n * @returns `true` if `first === second`, or `false` otherwise.\n */\nexport function areTheSame<T>(first: T, second: T): boolean {\n return first === second;\n}\n","/**\n * Asynchronous recipe of value evaluation.\n *\n * This is either a value as-is, a promise-like instance resolving to it, or its {@link AsyncRecipe.Evaluator evaluator}\n * function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\nexport type AsyncRecipe<TValue, TArgs extends any[] = []> =\n | TValue\n | PromiseLike<TValue>\n | AsyncRecipe.Evaluator<TValue, TArgs>;\n\nexport namespace AsyncRecipe {\n\n /**\n * Asynchronous value evaluator signature.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\n export type Evaluator<TValue, TArgs extends any[] = []> =\n /**\n * @param args - Parameters required for value evaluation.\n *\n * @returns Either an valuated value, or a promise-like instance resolving to one.\n */\n (this: void, ...args: TArgs) => TValue | PromiseLike<TValue>;\n\n}\n\n/**\n * @internal\n */\nfunction isAsyncEvaluator<TValue, TArgs extends any[]>(\n value: AsyncRecipe<TValue, TArgs>,\n): value is AsyncRecipe.Evaluator<TValue, TArgs> {\n return typeof value === 'function';\n}\n\n/**\n * Asynchronously evaluates a value by its recipe.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Asynchronous value evaluation recipe.\n * @param args - Parameters required for value evaluation.\n *\n * @returns A promise resolved to the value.\n */\nexport async function asyncByRecipe<TValue, TArgs extends any[]>(\n recipe: AsyncRecipe<TValue, TArgs>,\n ...args: TArgs\n): Promise<TValue> {\n return (/*#__INLINE__*/ isAsyncEvaluator(recipe)) ? recipe(...args) : recipe;\n}\n\n/**\n * Converts asynchronous value recipe to its {@link AsyncRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Asynchronous value recipe to convert.\n *\n * @returns A function asynchronously evaluating the value.\n */\nexport function asyncRecipe<TValue, TArgs extends any[]>(\n recipe: AsyncRecipe<TValue, TArgs>,\n): (this: void, ...args: TArgs) => Promise<TValue> {\n return (/*#__INLINE__*/ isAsyncEvaluator(recipe))\n ? (async (...args) => recipe(...args))\n : () => Promise.resolve(recipe);\n}\n","/**\n * Creates a provider of the only argument.\n *\n * @param value - A value to return.\n *\n * @returns A function that returns `value`.\n */\nexport function valueProvider<T>(value: T): (this: void) => T {\n return (): T => value;\n}\n\n/**\n * Creates a provider of arguments tuple.\n *\n * The returned tuple should never be modified as it is not cloned.\n *\n * @param values - Values to return.\n *\n * @returns A function that returns `values` tuple.\n */\nexport function valuesProvider<T extends readonly any[]>(...values: T): (this: void) => T {\n return (): T => values;\n}\n\n/**\n * Creates a provider of cloned arguments tuple.\n *\n * The returned tuple can be modified as it is cloned before the return.\n *\n * @param values - Values to return.\n *\n * @returns A function that returns a clone of `values` tuple.\n */\nexport function valuesCloner<T extends any[]>(...values: T): (this: void) => T {\n return (): T => values.slice() as T;\n}\n","import { valueProvider } from './value-providers';\n\n/**\n * Creates a provider of lazily evaluated value.\n *\n * The returned function evaluates the value first time it is called. Then it just returns the previously evaluated one.\n * The failed value evaluation will be retried on the next call.\n *\n * @param provider - A no-arg function evaluating the value.\n *\n * @returns A function that returns the value evaluated by `provider`.\n */\nexport function lazyValue<T>(provider: (this: void) => T): (this: void) => T {\n\n let get: () => T;\n\n const getValue = (): T => {\n get = lazyValue$recurrent; // Prevent recurrent evaluation\n try {\n\n const value = provider();\n\n get = valueProvider(value);\n\n return value;\n } catch (error) {\n get = getValue;\n throw error;\n }\n };\n\n get = getValue;\n\n return (): T => get();\n}\n\nfunction lazyValue$recurrent(): never {\n throw new TypeError('Recurrent evaluation');\n}\n","import { valueProvider } from './value-providers';\n\n/**\n * A recipe of value evaluation.\n *\n * This is either a value as-is, or its {@link ValueRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\nexport type ValueRecipe<TValue, TArgs extends any[] = []> =\n | TValue\n | ValueRecipe.Evaluator<TValue, TArgs>;\n\nexport namespace ValueRecipe {\n\n /**\n * Value evaluator signature.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\n export type Evaluator<TValue, TArgs extends any[] = []> =\n /**\n * @param args - Parameters required for value evaluation.\n *\n * @returns Evaluated value.\n */\n (this: void, ...args: TArgs) => TValue;\n\n}\n\n/**\n * @internal\n */\nfunction isValueEvaluator<TValue, TArgs extends any[]>(\n value: ValueRecipe<TValue, TArgs>,\n): value is ValueRecipe.Evaluator<TValue, TArgs> {\n return typeof value === 'function';\n}\n\n/**\n * Evaluates a value by its recipe.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Value evaluation recipe.\n * @param args - Parameters required for value evaluation.\n *\n * @returns Either the value itself, or the one evaluated by the given evaluator recipe.\n */\nexport function valueByRecipe<TValue, TArgs extends any[]>(\n recipe: ValueRecipe<TValue, TArgs>,\n ...args: TArgs\n): TValue {\n return (/*#__INLINE__*/ isValueEvaluator(recipe)) ? recipe(...args) : recipe;\n}\n\n/**\n * Converts a value recipe to its {@link ValueRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Value recipe to convert.\n *\n * @returns Either evaluator itself, or the one evaluating to the given value.\n */\nexport function valueRecipe<TValue, TArgs extends any[]>(\n recipe: ValueRecipe<TValue, TArgs>,\n): ValueRecipe.Evaluator<TValue, TArgs> {\n return (/*#__INLINE__*/ isValueEvaluator(recipe)) ? recipe : valueProvider(recipe);\n}\n","import { areTheSame } from '../value';\n\n/**\n * Checks whether two arrays are equal.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param second - Second array to compare.\n * @param length - The maximum number of elements to compare. Defaults to array length. Negative value means `0`.\n *\n * @returns `true` if up to `length` corresponding array elements are strictly equal to each other.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n length?: number | null,\n): boolean;\n\n/**\n * Checks whether two array ranges are equal.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param second - Second array to compare. Negative or absent value means `0`.\n * @param from - The first element index to compare. Negative value means `0`. Absent value means array length.\n * @param to - The number one more than the last element index to compare.\n *\n * @returns `true` if all corresponding elements in corresponding array ranges are strictly equal to each other.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n from: number | null | undefined,\n to: number | null,\n): boolean;\n\n/**\n * Checks whether two arrays are equal by comparing corresponding elements with the given comparator function.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param elementsAreEqual - Array elements comparator. Accepts elements to compare and their index as arguments.\n * Returns `true` if elements are equal, or `false` otherwise.\n * @param second - Second array to compare.\n * @param length - The maximum number of elements to compare. Defaults to array length.\n *\n * @returns `true` if `elementsAreEqual` comparator returned `true` for up to `length` corresponding array element\n * pairs.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n length?: number | null,\n): boolean;\n\n/**\n * Checks whether two array ranges are equal by comparing corresponding elements with the given comparator function.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param elementsAreEqual - Array elements comparator. Accepts elements to compare and their index as arguments.\n * Returns `true` if elements are equal, or `false` otherwise.\n * @param second - Second array to compare.\n * @param from - The first element index to compare. Negative value means `0`. Absent value means array length.\n * @param to - The number one more than the last element index to compare.\n *\n * @returns `true` if `elementsAreEqual` comparator returned `true` for up to `length` corresponding array element\n * pairs.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n from: number | null | undefined,\n to: number | null,\n): boolean;\n\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n compareOrFromOrLength?: ((this: void, first: T, second: T, index: number) => boolean) | number | null,\n fromOrLength?: number | null,\n to?: number | null,\n): boolean {\n return typeof compareOrFromOrLength === 'function'\n ? arrayElementsAreEqual(\n first,\n second,\n compareOrFromOrLength,\n fromOrLength,\n to,\n )\n : arrayElementsAreEqual(\n first,\n second,\n areTheSame,\n compareOrFromOrLength,\n fromOrLength,\n );\n}\n\nfunction arrayElementsAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n fromOrLength?: number | null,\n to?: number | null,\n): boolean {\n\n let start: number;\n let end: number;\n\n if (to !== undefined) {\n start = fromOrLength ? Math.max(fromOrLength, 0) : 0;\n end = to != null ? to : Math.max(first.length, second.length);\n } else if (fromOrLength != null) {\n start = 0;\n end = fromOrLength;\n } else {\n start = 0;\n end = Math.max(first.length, second.length);\n }\n\n if ((first.length <= end || second.length <= end) && first.length !== second.length) {\n return false;\n }\n\n for (let i = start; i < end; ++i) {\n if (!elementsAreEqual(first[i], second[i], i)) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * Builds element or array of the given elements.\n *\n * @param source - A source of elements as their iterable or array-like container.\n *\n * @returns The only element of the `source`, an array of all elements of non-empty source, or `undefined` if the\n * `source` is empty.\n */\nexport function elementOrArray<T>(source: Iterable<T> | ArrayLike<T>): T | T[] | undefined {\n\n const array = Array.from(source);\n const { length } = array;\n\n if (length) {\n return length === 1 ? array[0] : array;\n }\n\n return;\n}\n","import { isArrayOfElements } from './array-of-elements';\n\n/**\n * Builds a set of the given element or array of elements.\n *\n * @param elements Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns A new set containing all of the given elements, or empty set if `elements` is `null` or `undefined`.\n */\nexport function setOfElements<T>(elements: T | readonly T[] | null | undefined): Set<T> {\n return (/*#__INLINE__*/ isArrayOfElements(elements))\n ? new Set(elements)\n : (elements != null ? new Set([elements]) : new Set());\n}\n\n/**\n * Adds element of array of elements to the given set.\n *\n * Adds to the set a single element, all `elements` of the given array, or nothing when `elements` is `null`\n * or `undefined`.\n *\n * @param set - Target set to add elements to.\n * @param elements - Element(s) to add to the `set`. Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns The target `set`.\n */\nexport function extendSetOfElements<T>(set: Set<T>, elements: T | readonly T[] | null | undefined): Set<T> {\n if (/*#__INLINE__*/ isArrayOfElements(elements)) {\n elements.forEach(element => set.add(element));\n } else if (elements != null) {\n set.add(elements);\n }\n return set;\n}\n","import type { AbstractClass } from './abstract-class';\n\n/**\n * Detects a super class of the given class optionally satisfying the given criteria.\n *\n * Traverses all class ancestors until reaches the one satisfying the given criteria, or stops when there is no more\n * ancestors.\n *\n * @param type - The class constructor to find super class of.\n * @param satisfying - The criteria of super class matching. It is a function accepting a super class constructor\n * as the only parameter and returning `true` if the given super class matches, or `false` otherwise. Always returns\n * `true` by default.\n *\n * @return A super class `satisfying` the given criteria, or `undefined` if there is no such super class, or there is no\n * super class at all (e.g. when `Object` is passed in).\n */\nexport function superClassOf(\n type: AbstractClass,\n satisfying: (this: void, type: AbstractClass) => boolean = () => true,\n): AbstractClass | undefined {\n\n const prototype = Reflect.getPrototypeOf(type.prototype);\n\n if (prototype == null) {\n return;\n }\n\n const superType = prototype.constructor as AbstractClass;\n\n if (satisfying(superType)) {\n return superType;\n }\n\n return superClassOf(superType, satisfying);\n}\n","/**\n * A function that returns its argument as is.\n *\n * @param value - A value to return.\n *\n * @returns `value`.\n */\nexport function asis<T>(value: T): T {\n return value;\n}\n","/**\n * Counts meaningful arguments passed to function.\n *\n * Ignores trailing `undefined` values.\n *\n * @param args - Function call arguments tuple.\n *\n * @returns The number of arguments, except for the trailing `undefined` values.\n */\nexport function countArgs(args: ArrayLike<unknown>): number {\n\n let len = args.length;\n\n while (len > 0) {\n\n const idx = len - 1;\n\n if (args[idx] !== undefined) {\n break;\n }\n\n len = idx;\n }\n\n return len;\n}\n","/**\n * Merges two functions by calling one after another.\n *\n * Optionally merges function call results.\n *\n * @typeParam TArgs - Function parameter types as tuple.\n * @typeParam TReturn - A type of function result.\n * @typeParam TThis - A type if `this` object expected by function.\n * @param first - The first function to call.\n * @param second - The second function to call.\n * @param merge - Optional function call results merger. Accepts two function results as arguments and returns the final\n * result. When omitted the first function call result is ignored and the second function's call result is returned.\n *\n * @return A function that calls both of the given ones and merges their results. If one of the functions is absent,\n * then just returns another one. If both are absent, then returns `undefined`.\n */\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: (this: TThis, ...args: TArgs) => TReturn,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge: (first: TReturn, second: TReturn) => TReturn,\n): (this: TThis, ...args: TArgs) => TReturn;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: (this: TThis, ...args: TArgs) => TReturn,\n merge?: (first: TReturn, second: TReturn) => TReturn,\n): (this: TThis, ...args: TArgs) => TReturn;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge?: (first: TReturn, second: TReturn) => TReturn,\n): ((this: TThis, ...args: TArgs) => TReturn) | undefined;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge: (first: TReturn, second: TReturn) => TReturn = (_f, s) => s,\n): ((this: TThis, ...args: TArgs) => TReturn) | undefined {\n if (!first) {\n return second;\n }\n if (!second) {\n return first;\n }\n return function (this: TThis, ...args: TArgs): TReturn {\n return merge(\n first.apply(this, args),\n second.apply(this, args),\n );\n };\n}\n","/**\n * A function that does nothing.\n *\n * @returns `undefined`.\n */\nexport function noop(): undefined {\n return;\n}\n","const hasOwnProperty$ = Object.prototype.hasOwnProperty;\n\n/**\n * Checks whether the `target` object has own property with the given `key`.\n *\n * This is a safer variant of `target.hasOwnProperty(key)` call.\n *\n * @param target - Target object to check.\n * @param key - A key of the property to check.\n *\n * @returns `true` if `target` object has own property with the given `key`, or `false` otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty\n */\nexport function hasOwnProperty(target: object, key: PropertyKey): boolean {\n return hasOwnProperty$.call(target, key);\n}\n","import { areTheSame } from '../value';\n\n/**\n * Checks whether two objects have equal properties.\n *\n * @typeParam - A type of objects to check.\n * @param first - First object to check.\n * @param second - Second object to check.\n * @param valuesAreEqual - A function that compares corresponding property values. Accepts property values from both\n * objects and their key as parameters. Returns `true` if property values are equal. By default, checks property values\n * for {@link areTheSame strict equality}.\n * @param keys - Either an iterable of property keys to compare, or a function returning one. Defaults to own keys\n * (`Reflect.ownKeys`) of both objects.\n *\n * @returns `true` if `valuesAreEqual` returned `true` for each property key, or `false` otherwise.\n */\nexport function propertiesAreEqual<TObject extends object, TKey extends keyof TObject = keyof TObject>(\n first: TObject,\n second: TObject,\n valuesAreEqual?: (<TPropertyKey extends TKey>(\n this: void,\n first: TObject[TPropertyKey],\n second: TObject[TPropertyKey],\n key: TPropertyKey,\n ) => boolean) | null,\n keys:\n | Iterable<TKey>\n | ((this: void, first: TObject, second: TObject) => Iterable<TKey>) = propertiesAreEqual$ownKeys,\n): boolean {\n valuesAreEqual ||= areTheSame;\n\n const keyList = typeof keys === 'function' ? keys(first, second) : keys;\n\n for (const key of keyList) {\n\n const value1 = first[key];\n const value2 = second[key];\n\n if (!valuesAreEqual(value1, value2, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction *propertiesAreEqual$ownKeys<TObject extends object, TKey extends keyof TObject>(\n first: TObject,\n second: TObject,\n): Iterable<TKey> {\n\n const keys = new Set<PropertyKey>();\n\n for (const key of Reflect.ownKeys(first)) {\n yield key as TKey;\n keys.add(key);\n }\n for (const key of Reflect.ownKeys(second)) {\n if (!keys.has(key)) {\n yield key as TKey;\n }\n }\n}\n","import { noop } from '../fn';\nimport { lazyValue } from '../value';\n\n/**\n * A resolver of promise that can be created later or not created at all.\n *\n * Creates the promise only on demand.\n *\n * The methods of this object do not require `this` context and can be called as functions.\n */\nexport interface PromiseResolver<T = void> {\n\n /**\n * Resolves the promise.\n *\n * Has no effect when the promised is already settled.\n *\n * Can be called before the promise constructed.\n *\n * @param resolution - Either a promise value, or a promise-like instance resolving to one.\n */\n resolve(this: void, resolution: T | PromiseLike<T>): void;\n\n /**\n * Rejects the promise.\n *\n * Has no effect when the promised is already settled.\n *\n * Can be called before the promise constructed.\n *\n * @param reason - Promise rejection reason.\n */\n reject(this: void, reason?: any): void;\n\n /**\n * Creates a promise resolved by {@link resolve}, or rejected by {@link reject}.\n *\n * The subsequent calls to this method return the same promise instance.\n *\n * @returns Created promise.\n */\n promise(this: void): Promise<T>;\n\n}\n\n/**\n * Creates a promise resolver.\n *\n * @returns New promise resolver.\n */\nexport function newPromiseResolver<T = void>(): PromiseResolver<T> {\n\n let resolvePromise: (value: T | PromiseLike<T>) => void;\n let rejectPromise: (reason?: any) => void;\n let buildPromise = lazyValue(() => new Promise<T>((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n }));\n const settle = (resolution: () => Promise<T>): void => {\n buildPromise = lazyValue(resolution);\n resolvePromise = noop;\n rejectPromise = noop;\n };\n\n resolvePromise = value => {\n settle(() => Promise.resolve(value));\n };\n rejectPromise = error => {\n settle(() => Promise.reject(error));\n };\n\n return {\n resolve(value?) {\n resolvePromise(value);\n },\n reject(reason) {\n rejectPromise(reason);\n },\n promise() {\n return buildPromise();\n },\n };\n}\n","/**\n * Checks whether the given value is array-like.\n *\n * @typeParam TElement - Array elements type.\n * @typeParam TOther - Non-array value type.\n * @param value - A value to check.\n *\n * @returns `true` if the `value` has a `length` property, or `false` otherwise.\n */\nexport function isArrayLike<TElement, TOther>(value: ArrayLike<TElement> | TOther): value is ArrayLike<TElement> {\n return !!value && typeof value === 'object' && typeof (value as Partial<ArrayLike<TElement>>).length === 'number';\n}\n","/**\n * Checks whether the given object is iterable.\n *\n * @typeParam TElement - Iterable elements type.\n * @typeParam TOther - Non-iterable value type.\n * @param value - An object value to check.\n *\n * @returns `true` if the `value` has a `[Symbol.iterator]` property set, or `false` otherwise.\n */\nexport function isIterable<TElement, TOther>(value: Iterable<TElement> | TOther): value is Iterable<TElement> {\n return !!(value as Iterable<TElement>)[Symbol.iterator];\n}\n","/**\n * A function that checks whether the given value is present.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is not `null` or `undefined`, or `false` otherwise.\n */\nexport function isPresent<T>(value: T | undefined | null): value is T {\n return value != null;\n}\n\n/**\n * A function that checks whether the given value is not present.\n *\n * This is a direct opposite to `isPresent()`.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is `null` or `undefined`, or `false` otherwise.\n */\nexport function isNotPresent<T>(value: T | undefined | null): value is T {\n return value == null;\n}\n\n/**\n * A function that checks whether the given value is defined.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is not `undefined`, or `false` otherwise.\n */\nexport function isDefined<T>(value: T | undefined): value is T {\n return value !== undefined;\n}\n\n/**\n * A function that checks whether the given value is undefined.\n *\n * This is a direct opposite to `isDefined()`.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is `undefined`, or `false` otherwise.\n */\nexport function isUndefined<T>(value: T | undefined): value is T {\n return value === undefined;\n}\n"],"names":[],"mappings":"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"}
{"version":3,"file":"primitives.js","sources":["../src/array/array-of-elements.ts","../src/value/are-the-same.ts","../src/value/async-recipe.ts","../src/value/value-providers.ts","../src/value/lazy-value.ts","../src/value/value-recipe.ts","../src/array/arrays-are-equal.ts","../src/array/element-or-array.ts","../src/array/set-of-elements.ts","../src/class/super-class-of.ts","../src/fn/asis.ts","../src/fn/count-args.ts","../src/fn/merge-functions.ts","../src/fn/noop.ts","../src/object/has-own-property.ts","../src/object/properties-are-equal.ts","../src/promises/promise-resolver.ts","../src/type/is-array-like.ts","../src/type/is-iterable.ts","../src/type/presence.ts"],"sourcesContent":["/**\n * Checks whether the given value is an array.\n *\n * @param value - Either element, array of elements, `null`, or `undefined`.\n *\n * @returns `true` if the given `value` is an array, or `false` otherwise.\n */\nexport function isArrayOfElements<T>(value: T | T[] | null | undefined): value is T[];\n\n/**\n * Checks whether the given value is a readonly array.\n *\n * @param value - Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns `true` if the given `value` is an array, or `false` otherwise.\n */\nexport function isArrayOfElements<T>(value: T | readonly T[] | null | undefined): value is readonly T[];\n\nexport function isArrayOfElements<T>(value: T | readonly T[] | null | undefined): value is T[] {\n return Array.isArray(value);\n}\n\n/**\n * Converts element or array of elements to array of elements.\n *\n * @param value - Either element, array of elements, `null`, or `undefined`.\n *\n * @returns The `value` itself if it is an array, empty array if `value` is `null` or `undefined`, or an array\n * containing only `value` otherwise.\n */\nexport function arrayOfElements<T>(value: T | T[] | null | undefined): T[];\n\n/**\n * Converts element or readonly array of elements to readonly array of elements.\n *\n * @param value - Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns The `value` itself if it is an array, empty array if the `value` is `null` or `undefined`, or an array\n * containing only `value` otherwise.\n */\nexport function arrayOfElements<T>(value: T | readonly T[] | null | undefined): readonly T[];\n\nexport function arrayOfElements<T>(value: T | T[] | null | undefined): T[] {\n return (/*#__INLINE__*/ isArrayOfElements(value)) ? value : value != null ? [value] : [];\n}\n","/**\n * Checks whether two values are the same. I.e. strictly equal to each other.\n *\n * @typeParam T - A type of values.\n * @param first - First value to compare.\n * @param second - Second value to compare.\n *\n * @returns `true` if `first === second`, or `false` otherwise.\n */\nexport function areTheSame<T>(first: T, second: T): boolean {\n return first === second;\n}\n","/**\n * Asynchronous recipe of value evaluation.\n *\n * This is either a value as-is, a promise-like instance resolving to it, or its {@link AsyncRecipe.Evaluator evaluator}\n * function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\nexport type AsyncRecipe<TValue, TArgs extends any[] = []> =\n | TValue\n | PromiseLike<TValue>\n | AsyncRecipe.Evaluator<TValue, TArgs>;\n\nexport namespace AsyncRecipe {\n\n /**\n * Asynchronous value evaluator signature.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\n export type Evaluator<TValue, TArgs extends any[] = []> =\n /**\n * @param args - Parameters required for value evaluation.\n *\n * @returns Either an valuated value, or a promise-like instance resolving to one.\n */\n (this: void, ...args: TArgs) => TValue | PromiseLike<TValue>;\n\n}\n\n/**\n * @internal\n */\nfunction isAsyncEvaluator<TValue, TArgs extends any[]>(\n value: AsyncRecipe<TValue, TArgs>,\n): value is AsyncRecipe.Evaluator<TValue, TArgs> {\n return typeof value === 'function';\n}\n\n/**\n * Asynchronously evaluates a value by its recipe.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Asynchronous value evaluation recipe.\n * @param args - Parameters required for value evaluation.\n *\n * @returns A promise resolved to the value.\n */\nexport async function asyncByRecipe<TValue, TArgs extends any[]>(\n recipe: AsyncRecipe<TValue, TArgs>,\n ...args: TArgs\n): Promise<TValue> {\n return (/*#__INLINE__*/ isAsyncEvaluator(recipe)) ? recipe(...args) : recipe;\n}\n\n/**\n * Converts asynchronous value recipe to its {@link AsyncRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Asynchronous value recipe to convert.\n *\n * @returns A function asynchronously evaluating the value.\n */\nexport function asyncRecipe<TValue, TArgs extends any[]>(\n recipe: AsyncRecipe<TValue, TArgs>,\n): (this: void, ...args: TArgs) => Promise<TValue> {\n return (/*#__INLINE__*/ isAsyncEvaluator(recipe))\n ? (async (...args) => recipe(...args))\n : () => Promise.resolve(recipe);\n}\n","/**\n * Creates a provider of the only argument.\n *\n * @param value - A value to return.\n *\n * @returns A function that returns `value`.\n */\nexport function valueProvider<T>(value: T): (this: void) => T {\n return (): T => value;\n}\n\n/**\n * Creates a provider of arguments tuple.\n *\n * The returned tuple should never be modified as it is not cloned.\n *\n * @param values - Values to return.\n *\n * @returns A function that returns `values` tuple.\n */\nexport function valuesProvider<T extends readonly any[]>(...values: T): (this: void) => T {\n return (): T => values;\n}\n\n/**\n * Creates a provider of cloned arguments tuple.\n *\n * The returned tuple can be modified as it is cloned before the return.\n *\n * @param values - Values to return.\n *\n * @returns A function that returns a clone of `values` tuple.\n */\nexport function valuesCloner<T extends any[]>(...values: T): (this: void) => T {\n return (): T => values.slice() as T;\n}\n","import { valueProvider } from './value-providers';\n\n/**\n * Creates a provider of lazily evaluated value.\n *\n * The returned function evaluates the value first time it is called. Then it just returns the previously evaluated one.\n * The failed value evaluation will be retried on the next call.\n *\n * @param provider - A no-arg function evaluating the value.\n *\n * @returns A function that returns the value evaluated by `provider`.\n */\nexport function lazyValue<T>(provider: (this: void) => T): (this: void) => T {\n\n let get: () => T;\n\n const getValue = (): T => {\n get = lazyValue$recurrent; // Prevent recurrent evaluation\n try {\n\n const value = provider();\n\n get = valueProvider(value);\n\n return value;\n } catch (error) {\n get = getValue;\n throw error;\n }\n };\n\n get = getValue;\n\n return (): T => get();\n}\n\nfunction lazyValue$recurrent(): never {\n throw new TypeError('Recurrent evaluation');\n}\n","import { valueProvider } from './value-providers';\n\n/**\n * A recipe of value evaluation.\n *\n * This is either a value as-is, or its {@link ValueRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\nexport type ValueRecipe<TValue, TArgs extends any[] = []> =\n | TValue\n | ValueRecipe.Evaluator<TValue, TArgs>;\n\nexport namespace ValueRecipe {\n\n /**\n * Value evaluator signature.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n */\n export type Evaluator<TValue, TArgs extends any[] = []> =\n /**\n * @param args - Parameters required for value evaluation.\n *\n * @returns Evaluated value.\n */\n (this: void, ...args: TArgs) => TValue;\n\n}\n\n/**\n * @internal\n */\nfunction isValueEvaluator<TValue, TArgs extends any[]>(\n value: ValueRecipe<TValue, TArgs>,\n): value is ValueRecipe.Evaluator<TValue, TArgs> {\n return typeof value === 'function';\n}\n\n/**\n * Evaluates a value by its recipe.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Value evaluation recipe.\n * @param args - Parameters required for value evaluation.\n *\n * @returns Either the value itself, or the one evaluated by the given evaluator recipe.\n */\nexport function valueByRecipe<TValue, TArgs extends any[]>(\n recipe: ValueRecipe<TValue, TArgs>,\n ...args: TArgs\n): TValue {\n return (/*#__INLINE__*/ isValueEvaluator(recipe)) ? recipe(...args) : recipe;\n}\n\n/**\n * Converts a value recipe to its {@link ValueRecipe.Evaluator evaluator} function.\n *\n * @typeParam TValue - Evaluated value type. This can not be a function.\n * @typeParam TArgs - A type of parameters tuple required for value evaluation.\n * @param recipe - Value recipe to convert.\n *\n * @returns Either evaluator itself, or the one evaluating to the given value.\n */\nexport function valueRecipe<TValue, TArgs extends any[]>(\n recipe: ValueRecipe<TValue, TArgs>,\n): ValueRecipe.Evaluator<TValue, TArgs> {\n return (/*#__INLINE__*/ isValueEvaluator(recipe)) ? recipe : valueProvider(recipe);\n}\n","import { areTheSame } from '../value';\n\n/**\n * Checks whether two arrays are equal.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param second - Second array to compare.\n * @param length - The maximum number of elements to compare. Defaults to array length. Negative value means `0`.\n *\n * @returns `true` if up to `length` corresponding array elements are strictly equal to each other.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n length?: number | null,\n): boolean;\n\n/**\n * Checks whether two array ranges are equal.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param second - Second array to compare. Negative or absent value means `0`.\n * @param from - The first element index to compare. Negative value means `0`. Absent value means array length.\n * @param to - The number one more than the last element index to compare.\n *\n * @returns `true` if all corresponding elements in corresponding array ranges are strictly equal to each other.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n from: number | null | undefined,\n to: number | null,\n): boolean;\n\n/**\n * Checks whether two arrays are equal by comparing corresponding elements with the given comparator function.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param elementsAreEqual - Array elements comparator. Accepts elements to compare and their index as arguments.\n * Returns `true` if elements are equal, or `false` otherwise.\n * @param second - Second array to compare.\n * @param length - The maximum number of elements to compare. Defaults to array length.\n *\n * @returns `true` if `elementsAreEqual` comparator returned `true` for up to `length` corresponding array element\n * pairs.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n length?: number | null,\n): boolean;\n\n/**\n * Checks whether two array ranges are equal by comparing corresponding elements with the given comparator function.\n *\n * @typeParam T - Array elements type.\n * @param first - First array to compare.\n * @param elementsAreEqual - Array elements comparator. Accepts elements to compare and their index as arguments.\n * Returns `true` if elements are equal, or `false` otherwise.\n * @param second - Second array to compare.\n * @param from - The first element index to compare. Negative value means `0`. Absent value means array length.\n * @param to - The number one more than the last element index to compare.\n *\n * @returns `true` if `elementsAreEqual` comparator returned `true` for up to `length` corresponding array element\n * pairs.\n */\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n from: number | null | undefined,\n to: number | null,\n): boolean;\n\nexport function arraysAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n compareOrFromOrLength?: ((this: void, first: T, second: T, index: number) => boolean) | number | null,\n fromOrLength?: number | null,\n to?: number | null,\n): boolean {\n return typeof compareOrFromOrLength === 'function'\n ? arrayElementsAreEqual(\n first,\n second,\n compareOrFromOrLength,\n fromOrLength,\n to,\n )\n : arrayElementsAreEqual(\n first,\n second,\n areTheSame,\n compareOrFromOrLength,\n fromOrLength,\n );\n}\n\nfunction arrayElementsAreEqual<T>(\n first: ArrayLike<T>,\n second: ArrayLike<T>,\n elementsAreEqual: (this: void, first: T, second: T, index: number) => boolean,\n fromOrLength?: number | null,\n to?: number | null,\n): boolean {\n\n let start: number;\n let end: number;\n\n if (to !== undefined) {\n start = fromOrLength ? Math.max(fromOrLength, 0) : 0;\n end = to != null ? to : Math.max(first.length, second.length);\n } else if (fromOrLength != null) {\n start = 0;\n end = fromOrLength;\n } else {\n start = 0;\n end = Math.max(first.length, second.length);\n }\n\n if ((first.length <= end || second.length <= end) && first.length !== second.length) {\n return false;\n }\n\n for (let i = start; i < end; ++i) {\n if (!elementsAreEqual(first[i], second[i], i)) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * Builds element or array of the given elements.\n *\n * @param source - A source of elements as their iterable or array-like container.\n *\n * @returns The only element of the `source`, an array of all elements of non-empty source, or `undefined` if the\n * `source` is empty.\n */\nexport function elementOrArray<T>(source: Iterable<T> | ArrayLike<T>): T | T[] | undefined {\n\n const array = Array.from(source);\n const { length } = array;\n\n if (length) {\n return length === 1 ? array[0] : array;\n }\n\n return;\n}\n","import { isArrayOfElements } from './array-of-elements';\n\n/**\n * Builds a set of the given element or array of elements.\n *\n * @param elements Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns A new set containing all of the given elements, or empty set if `elements` is `null` or `undefined`.\n */\nexport function setOfElements<T>(elements: T | readonly T[] | null | undefined): Set<T> {\n return (/*#__INLINE__*/ isArrayOfElements(elements))\n ? new Set(elements)\n : (elements != null ? new Set([elements]) : new Set());\n}\n\n/**\n * Adds element of array of elements to the given set.\n *\n * Adds to the set a single element, all `elements` of the given array, or nothing when `elements` is `null`\n * or `undefined`.\n *\n * @param set - Target set to add elements to.\n * @param elements - Element(s) to add to the `set`. Either element, readonly array of elements, `null`, or `undefined`.\n *\n * @returns The target `set`.\n */\nexport function extendSetOfElements<T>(set: Set<T>, elements: T | readonly T[] | null | undefined): Set<T> {\n if (/*#__INLINE__*/ isArrayOfElements(elements)) {\n elements.forEach(element => set.add(element));\n } else if (elements != null) {\n set.add(elements);\n }\n return set;\n}\n","import type { AbstractClass } from './abstract-class';\n\n/**\n * Detects a super class of the given class optionally satisfying the given criteria.\n *\n * Traverses all class ancestors until reaches the one satisfying the given criteria, or stops when there is no more\n * ancestors.\n *\n * @param type - The class constructor to find super class of.\n * @param satisfying - The criteria of super class matching. It is a function accepting a super class constructor\n * as the only parameter and returning `true` if the given super class matches, or `false` otherwise. Always returns\n * `true` by default.\n *\n * @return A super class `satisfying` the given criteria, or `undefined` if there is no such super class, or there is no\n * super class at all (e.g. when `Object` is passed in).\n */\nexport function superClassOf(\n type: AbstractClass,\n satisfying: (this: void, type: AbstractClass) => boolean = () => true,\n): AbstractClass | undefined {\n\n const prototype = Reflect.getPrototypeOf(type.prototype);\n\n if (prototype == null) {\n return;\n }\n\n const superType = prototype.constructor as AbstractClass;\n\n if (satisfying(superType)) {\n return superType;\n }\n\n return superClassOf(superType, satisfying);\n}\n","/**\n * A function that returns its argument as is.\n *\n * @param value - A value to return.\n *\n * @returns `value`.\n */\nexport function asis<T>(value: T): T {\n return value;\n}\n","/**\n * Counts meaningful arguments passed to function.\n *\n * Ignores trailing `undefined` values.\n *\n * @param args - Function call arguments tuple.\n *\n * @returns The number of arguments, except for the trailing `undefined` values.\n */\nexport function countArgs(args: ArrayLike<unknown>): number {\n\n let len = args.length;\n\n while (len > 0) {\n\n const idx = len - 1;\n\n if (args[idx] !== undefined) {\n break;\n }\n\n len = idx;\n }\n\n return len;\n}\n","/**\n * Merges two functions by calling one after another.\n *\n * Optionally merges function call results.\n *\n * @typeParam TArgs - Function parameter types as tuple.\n * @typeParam TReturn - A type of function result.\n * @typeParam TThis - A type if `this` object expected by function.\n * @param first - The first function to call.\n * @param second - The second function to call.\n * @param merge - Optional function call results merger. Accepts two function results as arguments and returns the final\n * result. When omitted the first function call result is ignored and the second function's call result is returned.\n *\n * @return A function that calls both of the given ones and merges their results. If one of the functions is absent,\n * then just returns another one. If both are absent, then returns `undefined`.\n */\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: (this: TThis, ...args: TArgs) => TReturn,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge: (first: TReturn, second: TReturn) => TReturn,\n): (this: TThis, ...args: TArgs) => TReturn;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: (this: TThis, ...args: TArgs) => TReturn,\n merge?: (first: TReturn, second: TReturn) => TReturn,\n): (this: TThis, ...args: TArgs) => TReturn;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge?: (first: TReturn, second: TReturn) => TReturn,\n): ((this: TThis, ...args: TArgs) => TReturn) | undefined;\n\nexport function mergeFunctions<TArgs extends any[], TReturn, TThis>(\n first: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n second: ((this: TThis, ...args: TArgs) => TReturn) | undefined,\n merge: (first: TReturn, second: TReturn) => TReturn = (_f, s) => s,\n): ((this: TThis, ...args: TArgs) => TReturn) | undefined {\n if (!first) {\n return second;\n }\n if (!second) {\n return first;\n }\n return function (this: TThis, ...args: TArgs): TReturn {\n return merge(\n first.apply(this, args),\n second.apply(this, args),\n );\n };\n}\n","/**\n * A function that does nothing.\n *\n * @returns `undefined`.\n */\nexport function noop(): undefined {\n return;\n}\n","const hasOwnProperty$ = Object.prototype.hasOwnProperty;\n\n/**\n * Checks whether the `target` object has own property with the given `key`.\n *\n * This is a safer variant of `target.hasOwnProperty(key)` call.\n *\n * @param target - Target object to check.\n * @param key - A key of the property to check.\n *\n * @returns `true` if `target` object has own property with the given `key`, or `false` otherwise.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty\n */\nexport function hasOwnProperty(target: object, key: PropertyKey): boolean {\n return hasOwnProperty$.call(target, key);\n}\n","import { areTheSame } from '../value';\n\n/**\n * Checks whether two objects have equal properties.\n *\n * @typeParam - A type of objects to check.\n * @param first - First object to check.\n * @param second - Second object to check.\n * @param valuesAreEqual - A function that compares corresponding property values. Accepts property values from both\n * objects and their key as parameters. Returns `true` if property values are equal. By default, checks property values\n * for {@link areTheSame strict equality}.\n * @param keys - Either an iterable of property keys to compare, or a function returning one. Defaults to own keys\n * (`Reflect.ownKeys`) of both objects.\n *\n * @returns `true` if `valuesAreEqual` returned `true` for each property key, or `false` otherwise.\n */\nexport function propertiesAreEqual<TObject extends object, TKey extends keyof TObject = keyof TObject>(\n first: TObject,\n second: TObject,\n valuesAreEqual?: (<TPropertyKey extends TKey>(\n this: void,\n first: TObject[TPropertyKey],\n second: TObject[TPropertyKey],\n key: TPropertyKey,\n ) => boolean) | null,\n keys:\n | Iterable<TKey>\n | ((this: void, first: TObject, second: TObject) => Iterable<TKey>) = propertiesAreEqual$ownKeys,\n): boolean {\n valuesAreEqual ||= areTheSame;\n\n const keyList = typeof keys === 'function' ? keys(first, second) : keys;\n\n for (const key of keyList) {\n\n const value1 = first[key];\n const value2 = second[key];\n\n if (!valuesAreEqual(value1, value2, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction *propertiesAreEqual$ownKeys<TObject extends object, TKey extends keyof TObject>(\n first: TObject,\n second: TObject,\n): Iterable<TKey> {\n\n const keys = new Set<PropertyKey>();\n\n for (const key of Reflect.ownKeys(first)) {\n yield key as TKey;\n keys.add(key);\n }\n for (const key of Reflect.ownKeys(second)) {\n if (!keys.has(key)) {\n yield key as TKey;\n }\n }\n}\n","import { noop } from '../fn';\nimport { lazyValue } from '../value';\n\n/**\n * A resolver of promise that can be created later or not created at all.\n *\n * Creates the promise only on demand.\n *\n * The methods of this object do not require `this` context and can be called as functions.\n */\nexport interface PromiseResolver<T = void> {\n\n /**\n * Resolves the promise.\n *\n * Has no effect when the promised is already settled.\n *\n * Can be called before the promise constructed.\n *\n * @param resolution - Either a promise value, or a promise-like instance resolving to one.\n */\n resolve(this: void, resolution: T | PromiseLike<T>): void;\n\n /**\n * Rejects the promise.\n *\n * Has no effect when the promised is already settled.\n *\n * Can be called before the promise constructed.\n *\n * @param reason - Promise rejection reason.\n */\n reject(this: void, reason?: any): void;\n\n /**\n * Creates a promise resolved by {@link resolve}, or rejected by {@link reject}.\n *\n * The subsequent calls to this method return the same promise instance.\n *\n * @returns Created promise.\n */\n promise(this: void): Promise<T>;\n\n}\n\n/**\n * Creates a promise resolver.\n *\n * @returns New promise resolver.\n */\nexport function newPromiseResolver<T = void>(): PromiseResolver<T> {\n\n let resolvePromise: (value: T | PromiseLike<T>) => void;\n let rejectPromise: (reason?: any) => void;\n let buildPromise = lazyValue(() => new Promise<T>((resolve, reject) => {\n resolvePromise = resolve;\n rejectPromise = reject;\n }));\n const settle = (resolution: () => Promise<T>): void => {\n buildPromise = lazyValue(resolution);\n resolvePromise = noop;\n rejectPromise = noop;\n };\n\n resolvePromise = value => {\n settle(() => Promise.resolve(value));\n };\n rejectPromise = error => {\n settle(() => Promise.reject(error));\n };\n\n return {\n resolve(value?) {\n resolvePromise(value);\n },\n reject(reason) {\n rejectPromise(reason);\n },\n promise() {\n return buildPromise();\n },\n };\n}\n","/**\n * Checks whether the given value is array-like.\n *\n * @typeParam TElement - Array elements type.\n * @typeParam TOther - Non-array value type.\n * @param value - A value to check.\n *\n * @returns `true` if the `value` has a `length` property, or `false` otherwise.\n */\nexport function isArrayLike<TElement, TOther>(value: ArrayLike<TElement> | TOther): value is ArrayLike<TElement> {\n return !!value && typeof value === 'object' && typeof (value as Partial<ArrayLike<TElement>>).length === 'number';\n}\n","/**\n * Checks whether the given object is iterable.\n *\n * @typeParam TElement - Iterable elements type.\n * @typeParam TOther - Non-iterable value type.\n * @param value - An object value to check.\n *\n * @returns `true` if the `value` has a `[Symbol.iterator]` property set, or `false` otherwise.\n */\nexport function isIterable<TElement, TOther>(value: Iterable<TElement> | TOther): value is Iterable<TElement> {\n return !!(value as Iterable<TElement>)[Symbol.iterator];\n}\n","/**\n * A function that checks whether the given value is present.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is not `null` or `undefined`, or `false` otherwise.\n */\nexport function isPresent<T>(value: T | undefined | null): value is T {\n return value != null;\n}\n\n/**\n * A function that checks whether the given value is not present.\n *\n * This is a direct opposite to `isPresent()`.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is `null` or `undefined`, or `false` otherwise.\n */\nexport function isNotPresent<T>(value: T | undefined | null): value is undefined | null {\n return value == null;\n}\n\n/**\n * A function that checks whether the given value is defined.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is not `undefined`, or `false` otherwise.\n */\nexport function isDefined<T>(value: T | undefined): value is T {\n return value !== undefined;\n}\n\n/**\n * A function that checks whether the given value is undefined.\n *\n * This is a direct opposite to `isDefined()`.\n *\n * @param value - A value to check.\n *\n * @returns `true` when the given `value` is `undefined`, or `false` otherwise.\n */\nexport function isUndefined<T>(value: T | undefined): value is undefined {\n return value === undefined;\n}\n"],"names":[],"mappings":"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"}

@@ -520,3 +520,3 @@ /// <reference lib="es2019" />

*/
export function isNotPresent<T>(value: T | undefined | null): value is T;
export function isNotPresent<T>(value: T | undefined | null): value is undefined | null;
/**

@@ -539,4 +539,4 @@ * A function that checks whether the given value is defined.

*/
export function isUndefined<T>(value: T | undefined): value is T;
export function isUndefined<T>(value: T | undefined): value is undefined;
}
//# sourceMappingURL=index.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"sources":["src/array/array-of-elements.ts","src/value/are-the-same.ts","src/value/async-recipe.ts","src/value/value-providers.ts","src/value/lazy-value.ts","src/value/value-recipe.ts","src/array/arrays-are-equal.ts","src/array/element-or-array.ts","src/array/set-of-elements.ts","src/class/abstract-class.ts","src/class/class.ts","src/class/super-class-of.ts","src/fn/asis.ts","src/fn/count-args.ts","src/fn/merge-functions.ts","src/fn/noop.ts","src/object/has-own-property.ts","src/object/properties-are-equal.ts","src/promises/promise-resolver.ts","src/type/is-array-like.ts","src/type/is-iterable.ts","src/type/presence.ts"],"names":[],"mappings":"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","file":"index.d.ts","sourceRoot":""}
{"version":3,"sources":["src/array/array-of-elements.ts","src/value/are-the-same.ts","src/value/async-recipe.ts","src/value/value-providers.ts","src/value/lazy-value.ts","src/value/value-recipe.ts","src/array/arrays-are-equal.ts","src/array/element-or-array.ts","src/array/set-of-elements.ts","src/class/abstract-class.ts","src/class/class.ts","src/class/super-class-of.ts","src/fn/asis.ts","src/fn/count-args.ts","src/fn/merge-functions.ts","src/fn/noop.ts","src/object/has-own-property.ts","src/object/properties-are-equal.ts","src/promises/promise-resolver.ts","src/type/is-array-like.ts","src/type/is-iterable.ts","src/type/presence.ts"],"names":[],"mappings":"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","file":"index.d.ts","sourceRoot":""}
{
"name": "@proc7ts/primitives",
"version": "3.0.1",
"version": "3.0.2",
"description": "Type and function primitives",

@@ -5,0 +5,0 @@ "keywords": [