state-management-utilities
Version:
State management utilities
41 lines (40 loc) • 2.54 kB
TypeScript
import { TaskManagerCore } from "task-manager-core";
import { StateManager } from "./state-manager";
import type { HydratedEntry } from "./center";
import type { TypeStateManagerConfigs } from "./state-manager";
import type { RequestConfigBase, RequestDataRecordType, TaskManagerCoreConfig } from "task-manager-core";
export declare class TaskManager<Task extends (...args: any) => Promise<any>, DataManager extends StateManager<Awaited<ReturnType<Task>> | null>, ErrorManager extends StateManager<TaskError | null>, IsProcessingManager extends StateManager<boolean>, RequestParamsManager extends StateManager<RequestDataRecordType<Task>>, TaskError = any, Meta = Record<string, any>> extends TaskManagerCore<Task, TaskError, Meta> {
protected _initializeManager<Manager>({ name, initialValue, configs, }: {
name: string;
initialValue: any;
configs: StateManagerConfigs<any>;
}): Manager;
protected _uid: string;
readonly state: DataManager;
readonly error: ErrorManager;
readonly isProcessing: IsProcessingManager;
protected _requestDetails_: RequestParamsManager;
get uid(): string;
get requestDetails(): Readonly<{
value: RequestDataRecordType<Task>;
}>;
protected _setRequestDetails(updater: (prev: RequestDataRecordType<Task>) => RequestDataRecordType<Task>): void;
constructor({ uid, stateConfig, errorConfig, isProcessingConfig, requestParamsConfig, ...configs }: TaskManagerConfig<Task, TaskError, Meta>);
reset(): this;
protected _isPrevented({ hash, config, }: {
hash: string;
config: RequestConfigBase<Task, TaskError, Meta>;
}): boolean;
hydrate(...parameters: Parameters<Task>): Promise<HydratedEntry>;
}
export type StateManagerConfigs<StateType> = {
initialValue?: StateType;
} & Omit<TypeStateManagerConfigs<StateType>, "uid">;
export type TaskManagerConfig<Task extends (...args: any) => Promise<any>, TaskError = any, Meta = Record<string, any>> = {
uid?: string;
stateConfig?: StateManagerConfigs<Awaited<ReturnType<Task>> | undefined | null>;
errorConfig?: StateManagerConfigs<TaskError | undefined>;
isProcessingConfig?: StateManagerConfigs<boolean>;
requestParamsConfig?: StateManagerConfigs<RequestDataRecordType<Task>>;
} & TaskManagerCoreConfig<Task, TaskError, Meta>;
export type { RequestConfigBase, RequestConfigs, RequestDataRecordType, RequestEventHandlersType, RequestStatus, SharedConfigs, TaskManagerCoreConfig, TaskManagerInterceptorsType, } from "task-manager-core";