UNPKG

graphile-config

Version:

Standard plugin interface and helpers to be used across the Graphile stack.

24 lines 1.59 kB
import { orderedApply } from "./functionality.js"; import type { CallbackDescriptor, CallbackOrDescriptor, FunctionalityObject, PromiseOrDirect, UnwrapCallback } from "./interfaces.js"; export declare class AsyncHooks<THooks extends FunctionalityObject<THooks>> { callbacks: { [key in keyof THooks]?: Array<THooks[keyof THooks] extends CallbackOrDescriptor<infer U> ? U : never>; }; hook<THookName extends keyof THooks>(event: THookName, fn: THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never): void; /** * Hooks can _mutate_ the argument, they cannot return a replacement. This * allows us to completely side-step the problem of recursive calls. */ process<THookName extends keyof THooks>(hookName: THookName, ...args: Parameters<THooks[THookName] extends CallbackOrDescriptor<infer U> ? U : never>): void | Promise<void>; } /** @deprecated Use FunctionalityObject */ export type HookObject<T> = FunctionalityObject<T>; /** @deprecated Use `orderedApply` */ export declare const applyHooks: typeof orderedApply; /** @deprecated Use CallbackDescriptor */ export type PluginHookObject<T extends (...args: any[]) => any> = CallbackDescriptor<T>; /** @deprecated Use CallbackOrDescriptor */ export type PluginHook<T extends (...args: any[]) => PromiseOrDirect<UnwrapCallback<any> | void>> = CallbackOrDescriptor<T> | readonly CallbackDescriptor<T>[]; /** @deprecated Use UnwrapCallback */ export type PluginHookCallback<T extends CallbackOrDescriptor<(...args: any[]) => any>> = UnwrapCallback<T>; //# sourceMappingURL=hooks.d.ts.map