UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

113 lines (112 loc) 3.04 kB
import { IDS } from './types'; import { AddEntitiesOptions } from './addEntities'; import { SetEntities } from './setEntities'; export declare enum StoreActions { Update = 0, AddEntities = 1, SetEntities = 2, UpdateEntities = 3, RemoveEntities = 4, UpsertEntities = 5 } interface RunStoreActionSetEntities<Entity = any> { payload: { data: SetEntities<Entity>; }; } interface RunStoreActionAddEntities<Entity = any> { payload: { data: Entity[] | Entity; params?: AddEntitiesOptions; }; } interface RunStoreActionUpdateEntities<Entity = any> { payload: { data: Partial<Entity>; entityIds: IDS; }; } interface RunStoreActionRemoveEntities<Entity = any> { payload: { entityIds: IDS; }; } interface RunStoreActionUpsertEntities<Entity = any> { payload: { data: Partial<Entity>[] | Partial<Entity>; entityIds?: IDS; }; } interface RunStoreActionUpdate<State = any> { payload: { data: Partial<State>; }; } /** * @example * * runStoreAction('books', StoreActions.Update, { * payload: { * data: { filter: 'New filter' } * } * }); */ export declare function runStoreAction<State = any>(storeName: string, action: StoreActions.Update, params: RunStoreActionUpdate<State>): any; /** * @example * * runStoreAction('books', StoreActions.RemoveEntities, { * payload: { * entityIds: 2 * } * }); */ export declare function runStoreAction<Entity = any>(storeName: string, action: StoreActions.RemoveEntities, params: RunStoreActionRemoveEntities<Entity>): any; /** * @example * * runStoreAction('books', StoreActions.UpdateEntities, { * payload: { * data: { title: 'New title' }, * entityIds: 2 * } * }); */ export declare function runStoreAction<Entity = any>(storeName: string, action: StoreActions.UpdateEntities, params: RunStoreActionUpdateEntities<Entity>): any; /** * @example * * runStoreAction('books', StoreActions.SetEntities, { * payload: { * data: [{ id: 1 }, { id: 2 }] * } * }); */ export declare function runStoreAction<Entity = any>(storeName: string, action: StoreActions.SetEntities, params: RunStoreActionSetEntities<Entity>): any; /** * @example * * runStoreAction('books', StoreActions.AddEntities, { * payload: { * data: { id: 1 } * } * }); */ export declare function runStoreAction<Entity = any>(storeName: string, action: StoreActions.AddEntities, params: RunStoreActionAddEntities<Entity>): any; /** * @example * * runStoreAction('books', StoreActions.UpsertEntities, { * payload: { * data: { title: 'New Title' }, * entityIds: [1, 2] * } * }); * runStoreAction('books', StoreActions.UpsertEntities, { * payload: { * data: [{ id: 2, title: 'New Title' }, { id: 3, title: 'Another title'}], * } * }); */ export declare function runStoreAction<Entity = any>(storeName: string, action: StoreActions.UpsertEntities, params: RunStoreActionUpsertEntities<Entity>): any; export {};