@datorama/akita
Version:
State Management Tailored-Made for JS Applications
113 lines (112 loc) • 3.04 kB
TypeScript
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 {};