UNPKG

react-async-states

Version:

A low-level multi paradigm state management library

22 lines (19 loc) 1.11 kB
import { UseConfig } from '../types.internal.js'; import { ModernHookReturn, LegacyHookReturn } from '../hooks/types.js'; import { Source, Producer, ProducerConfig, State } from 'async-states'; type Api<TData, TArgs extends unknown[] = [], TError = Error> = { (): Source<TData, TArgs, TError>; source: Source<TData, TArgs, TError>; define(fn: Producer<TData, TArgs, TError>, config?: ProducerConfig<TData, TArgs, TError>): Api<TData, TArgs, TError>; useData<S = State<TData, TArgs, TError>>(config?: UseConfig<TData, TArgs, TError, S>, deps?: any[]): ModernHookReturn<TData, TArgs, TError, S>; useAsync<S = State<TData, TArgs, TError>>(config?: UseConfig<TData, TArgs, TError, S>, deps?: any[]): LegacyHookReturn<TData, TArgs, TError, S>; }; type AnyApi = Api<any, any, any>; type AppShape = Record<string, Record<string, AnyApi>>; type App<TApp extends AppShape> = { [resource in keyof TApp]: Resource<TApp[resource]>; }; type Resource<TResource extends Record<string, AnyApi>> = { [api in keyof TResource]: TResource[api]; }; export { AnyApi, Api, App, AppShape, Resource };