import { CodegenConfig } from "@graphql-codegen/cli"; import { Plugin } from "vite"; //#region src/utils/skip.d.ts interface SkipContext { trigger: "start" | "build" | "watch"; filePath?: string; } type SkipFn = (context: SkipContext) => boolean | Promise; //#endregion //#region src/index.d.ts interface Options { /** * Run codegen on server start. * * @default true */ runOnStart?: boolean; /** * Run codegen on build. Will prevent build if codegen fails. * * @default true */ runOnBuild?: boolean; /** * Enable codegen integration with vite file watcher. * * @default true */ enableWatcher?: boolean; /** * Automatically add schemas and documents referenced in the codegen config * to the Vite file watcher. * * @default true */ watchCodegenConfigFiles?: boolean; /** * Throw an error if codegen fails on server start. * * @default false */ throwOnStart?: boolean; /** * Throw an error if codegen fails on build. * * @default true */ throwOnBuild?: boolean; /** * Run codegen when a document matches. * * @default true */ matchOnDocuments?: boolean; /** * Run codegen when a schema matches. * * @default false */ matchOnSchemas?: boolean; /** * Name of a project in a multi-project config file. */ project?: string; /** * Manually define the codegen config. */ config?: CodegenConfig; /** * Override parts of the codegen config just for this plugin. */ configOverride?: Partial; /** * Override parts of the codegen config just for this plugin on server start. */ configOverrideOnStart?: Partial; /** * Override parts of the codegen config just for this plugin on build. */ configOverrideOnBuild?: Partial; /** * Override parts of the codegen config just for this plugin in the watcher. */ configOverrideWatcher?: Partial; /** * Override the codegen config file path. */ configFilePathOverride?: string; /** * Skip codegen for a given cycle. * * @default false */ skip?: boolean | SkipFn; /** * Log various steps to aid in tracking down bugs. * * @default false */ debug?: boolean; } declare function GraphQLCodegen(options?: Options): Plugin; //#endregion export { GraphQLCodegen, GraphQLCodegen as default, Options, type SkipContext, type SkipFn };