UNPKG

@appello/services

Version:

Services package with api / graphql

17 lines (16 loc) 949 B
import { Unidentifiable } from '@appello/common'; export type CacheItem<T, Id> = { type: T; id: Id; }; export type CacheList<T, Id> = (CacheItem<T, 'LIST'> | CacheItem<T, Id>)[]; type InnerProvidesList<T> = <Results extends { id: unknown; }[]>(results: Unidentifiable<Results>) => CacheList<T, Results[number]['id']>; export declare const providesList: <T extends string>(type: T) => InnerProvidesList<T>; export declare const invalidatesList: <T extends string>(type: T) => () => readonly [CacheItem<T, "LIST">]; export declare const cacheByIdArg: <T extends string>(type: T) => <Id, Result = undefined, Error = undefined>(result: Result, error: Error, id: Id) => readonly [CacheItem<T, Id>]; export declare const cacheByIdArgProperty: <T extends string>(type: T) => <Arg extends { id: unknown; }, Result = undefined, Error = undefined>(result: Result, error: Error, arg: Arg) => readonly [CacheItem<T, Arg["id"]>] | []; export {};