burdy
Version:
Open Source Headless Platform
30 lines (29 loc) • 1.03 kB
TypeScript
declare type IHookActionFunction<Args extends any[] = any[]> = (...args: Args) => Promise<void>;
declare type IHookFilterFunction<Args extends any[] = any[]> = (...args: Args) => Promise<Args[0]>;
declare type IHookFilterSyncFunction<Args extends any[] = any[]> = (...args: Args) => Args[0];
interface IHookFilter<Args extends any[] = any[]> {
id: string;
function: IHookFilterFunction<Args>;
priority: number;
}
interface IHookFilterSync<Args extends any[] = any[]> {
id: string;
function: IHookFilterSyncFunction<Args>;
priority: number;
}
interface IHookAction<Args extends any[] = any[]> {
id: string;
function: IHookActionFunction<Args[]>;
}
interface IHookCache {
actions: {
[key: string]: IHookAction[];
};
filters: {
[key: string]: IHookFilter[];
};
syncFilters: {
[key: string]: IHookFilterSync[];
};
}
export { IHookActionFunction, IHookFilterFunction, IHookFilterSyncFunction, IHookFilterSync, IHookAction, IHookFilter, IHookCache, };