UNPKG

@ngneers/easy-ngrx-distinct-selector

Version:

Provides functions to easily create @ngrx/store selectors with equal functions for arguments and result values.

15 lines (14 loc) 940 B
import { MemoizedProjection } from '@ngrx/store'; import { EqualsFn } from './is-equal'; export type TypedMemoizedProjection<TArgs extends unknown[] = unknown[], TResult = unknown> = MemoizedProjection & { memoized: (...args: TArgs) => TResult; setResult: (result?: TResult) => void; }; /** * Uses the same logic as the `defaultMemoize` function from `@ngrx/store`. * The difference is that the `isArgumentsEqual` function is now called only once with the previous and current arguments instead of once for each argument. * This enables us to write better TypeScript types for the `isArgumentsEqual` function. * * @see https://ngrx.io/api/store/defaultMemoize */ export declare function typeFriendlyDefaultMemoize<TArgs extends unknown[] = unknown[], TResult = unknown>(projectionFn: (...args: TArgs) => TResult, isArgumentsEqual?: EqualsFn<TArgs>, isResultEqual?: EqualsFn<TResult>): TypedMemoizedProjection<TArgs, TResult>;