/
githubmirror
/
immutable-js
Обзор
Документация
Войти
/
githubmirror
/
immutable-js
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v5.1.6
src/CollectionHelperMethods.ts
51 строка
1 KB
Julien Deniau
Extract CollectionHelperMethods
01 июл 2025, 01:40
01 июл 2025, 01:40
d613de2
Код
Авторство
О чём код?
import type { Collection } from '../type-definitions/immutable'; import assertNotInfinite from './utils/assertNotInfinite'; export function reduce( collection: Collection<unknown, unknown>, reducer: (...args: unknown[]) => unknown, reduction: unknown, context: unknown, useFirst: boolean, reverse: boolean ) { // @ts-expect-error Migrate to CollectionImpl in v6 assertNotInfinite(collection.size); // @ts-expect-error Migrate to CollectionImpl in v6 collection.__iterate((v, k, c) => { if (useFirst) { useFirst = false; reduction = v; } else { reduction = reducer.call(context, reduction, v, k, c); } }, reverse); return reduction; } export function keyMapper<K, V>(v: V, k: K): K { return k; } export function entryMapper<K, V>(v: V, k: K): [K, V] { return [k, v]; } export function not(predicate: (...args: unknown[]) => boolean) { return function (this: unknown, ...args: unknown[]): boolean { return !predicate.apply(this, args); }; } export function neg(predicate: (...args: unknown[]) => number) { return function (this: unknown, ...args: unknown[]): number { return -predicate.apply(this, args); }; } export function defaultNegComparator( a: number | string, b: number | string ): number { return a < b ? 1 : a > b ? -1 : 0; }