UNPKG

@voiceflow/common

Version:

Junk drawer of utility functions

74 lines 3 kB
import type { Normalized } from '../types.js'; export interface ObjectWithId { id: number | string; } export interface RemoveNormalizedByKey { <T>(normalized: Normalized<T>, targetKey: string): Normalized<T>; <T extends Normalized<any>>(normalized: T, targetKey: string): T; } export interface GetNormalizedByKey { <T>({ byKey }: Normalized<T>, key: string): T; <T extends Normalized<any>>({ byKey }: T, key: string): T extends Normalized<infer R> ? R : never; } export interface SafeGetNormalizedByKey { <T>({ byKey }: Normalized<T>, key: string): T | null; <T extends Normalized<any>>({ byKey }: T, key: string): T extends Normalized<infer R> ? R | null : never; } export declare const EMPTY: Normalized<any>; export type GetKey<T> = (obj: T, index?: number, array?: T[]) => string; export type GetKeyFromMap<T> = (obj: T, index: number, array: T[]) => string; export declare const defaultGetKey: <T extends ObjectWithId>(obj: T) => string; /** * @deprecated prefer `normal-store` */ export declare const safeAdd: <T>(items: T[], obj: T) => T[]; export declare const getByIndex: <T>(items: T[]) => (_: string, index: number) => T; export declare const getByKey: <T>(lookup: Record<string, T>) => (key: string) => T; export declare const buildLookup: <T>(allKeys: string[], getValue: (key: string, index: number) => T) => Record<string, T>; /** * @deprecated prefer `normal-store` */ export declare const normalize: <T extends unknown>(items: T[], getKey?: GetKeyFromMap<T>) => Normalized<T>; /** * @deprecated prefer `normal-store` */ export declare const denormalize: <T>({ allKeys, byKey }: Normalized<T>) => T[]; /** * @deprecated prefer `normal-store` */ export declare const getNormalizedByKey: GetNormalizedByKey; /** * @deprecated prefer `normal-store` */ export declare const safeGetNormalizedByKey: SafeGetNormalizedByKey; /** * @deprecated prefer `normal-store` */ export declare const getAllNormalizedByKeys: <T>({ byKey }: Normalized<T>, keys: string[]) => T[]; /** * @deprecated prefer `normal-store` */ export declare const updateNormalizedByKey: <T, N extends Normalized<T>>({ byKey, ...rest }: N, key: string, obj: T) => N; /** * @deprecated prefer `normal-store` */ export declare const addNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => { allKeys: string[]; byKey: Record<string, T>; }; /** * @deprecated prefer `normal-store` */ export declare const addToStartNormalizedByKey: <T>(normalized: Normalized<T>, key: string, obj: T) => { allKeys: string[]; byKey: Record<string, T>; }; /** * @deprecated prefer `normal-store` */ export declare const addAllNormalizedByKeys: <T extends unknown, K extends GetKey<T> = (obj: T) => string>(normalized: Normalized<T>, objs: T[], getKey?: K) => Normalized<T>; /** * @deprecated prefer `normal-store` */ export declare const reorderKeys: <T>(newKeyArray: string[], byKey: Record<string, T>) => Normalized<T>; //# sourceMappingURL=normalized.d.ts.map