import type { AsyncHooks } from "graphile-config"; import type { EXPORTABLE } from "./utils.ts"; /** * The base details in the 'info' object passed as the first argument to all gather * hooks and helpers; this one excludes `cache` and `state` so that it can be passed * into the `initialCache(info)` and `initialState(context, info)` hooks. */ export interface GatherPluginContextBase { /** Libraries and modules to save importing */ lib: GraphileConfig.Lib; /** * The (completed) inflection object, to help you name things your data * gathering produces. */ inflection: GraphileBuild.Inflection; /** * The 'gather' phase options from the resolved preset. */ options: GraphileBuild.GatherOptions; /** * The full resolved preset (generally you'll want `options` instead). */ resolvedPreset: GraphileConfig.ResolvedPreset; /** * The `helpers` that all the gather plugins make available to you. */ helpers: GraphileConfig.GatherHelpers; /** * Triggers the given hook with the given event (used to broadcast to other * gather plugins so they can make their own changes/additions). */ process: AsyncHooks["process"]; /** * A copy of `import * from "grafast"` to avoid having to add grafast as a * dependency. * * @deprecated Use `lib.grafast` instead. */ grafast: typeof import("grafast"); /** * @deprecated Use `lib.graphileBuild.EXPORTABLE` instead. */ EXPORTABLE: typeof EXPORTABLE; } /** * The details in the 'info' object passed as the first argument to all gather * hooks and helpers except `initialCache()` and `initialState()` */ export interface GatherPluginContext extends GatherPluginContextBase { /** * The state for this plugin specifically. State exists only for a single * 'gather' phase and is then discarded. */ state: TState; /** * The cache for this plugin specifically. The cache persists between * multiple 'gather' phases and can be a useful place to cache expensive * computation so later builds are faster. NOTE: cache is _not_ persisted, it * only exists whilst the code is in memory. */ cache: TCache; } //# sourceMappingURL=interfaces.d.ts.map