easy-peasy-classes
Version:
easy-peasy enhanced with classes, full typescript type safety, nested store stuctures and model inheritance
19 lines (18 loc) • 1.66 kB
TypeScript
import * as easyPeasy from "easy-peasy";
import { ToStoreType } from './types';
export declare function createStore<T extends object = {}>(storeModel: T, config?: easyPeasy.EasyPeasyConfig): easyPeasy.Store<ToStoreType<T>, any>;
interface createTypedHooksReturn<Model extends object> {
useStoreActions: <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<Model>>) => Result) => Result;
useStoreState: <Result>(mapState: (state: easyPeasy.State<ToStoreType<Model>>) => Result, dependencies?: any[]) => Result;
useStoreDispatch: () => easyPeasy.Dispatch<ToStoreType<Model>>;
}
export declare type getStoreState_<Model extends object> = <Result>(mapState: (state: easyPeasy.State<ToStoreType<Model>>) => Result, dependencies?: any[]) => Result;
export declare type getStoreActions_<Model extends object> = <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<Model>>) => Result) => Result;
export declare function createTypedHooks<Model extends object>(): createTypedHooksReturn<Model>;
interface createLocalTypedHooksReturn<LocalModel extends object> {
useLocalActions: <Result>(mapActions: (actions: easyPeasy.Actions<ToStoreType<LocalModel>>) => Result) => Result;
useLocalState: <Result>(mapState?: (state: easyPeasy.State<ToStoreType<LocalModel>>) => Result, dependencies?: any[]) => Result;
}
declare type HolderMapFn<StoreModel extends object> = (store: ToStoreType<StoreModel>) => object;
export declare function createLocalHooksFactory<StoreModel extends object>(hooks: any): <LocalModel extends object>(holderMapFn: HolderMapFn<StoreModel>) => createLocalTypedHooksReturn<LocalModel>;
export {};