synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
33 lines (32 loc) • 1.41 kB
TypeScript
/**
* Параметры исполнения действия (мемоизация)
*/
export interface ActionExecutionOptions<TParams, TResult> {
memoize?: (currentArgs: TParams, previousArgs: TParams, previousResult: TResult) => boolean;
}
/**
* Статусы жизненного цикла API-запроса.
*
* Сделано const-объектом (а не TS `enum`) намеренно: значения остаются обычными
* строковыми литералами, поэтому `ApiStatus.Loading` и строка `'loading'`
* взаимозаменяемы и тип обратно совместим с прежним строковым union'ом. С `enum`
* это не так — его член не присваивается к литералу и наоборот.
*
* `ApiStatus` — одновременно значение (для `ApiStatus.Loading` в коде) и тип
* (union всех статусов).
*/
export declare const ApiStatus: {
readonly Idle: "idle";
readonly Loading: "loading";
readonly Success: "success";
readonly Error: "error";
readonly Reset: "reset";
};
export type ApiStatus = (typeof ApiStatus)[keyof typeof ApiStatus];
/**
* Состояние API-запроса (`this.apiActions` / `this.keyedApiActions`)
*/
export interface ApiRequestState {
status: ApiStatus;
error: string | null;
}