@eddeee888/gcg-typescript-resolver-files
Version:
This [GraphQL Code Generator](https://www.the-guild.dev/graphql/codegen) plugin creates resolvers given GraphQL schema.
108 lines (107 loc) • 4.7 kB
TypeScript
import type { AddPluginConfig } from '@graphql-codegen/add/typings/config';
import type * as typeScriptPlugin from '@graphql-codegen/typescript';
import type * as typeScriptResolversPlugin from '@graphql-codegen/typescript-resolvers';
import type * as schemaAstPlugin from '@graphql-codegen/schema-ast';
import type { ProjectOptions } from 'ts-morph';
type ParsedTypesPluginsConfig = Omit<typeScriptPlugin.TypeScriptPluginConfig & typeScriptResolversPlugin.TypeScriptResolversPluginConfig, 'scalars' | 'emitLegacyCommonJSImports'>;
type ConfigMode = 'merged' | 'modules';
type ResolverMainFileMode = 'merged' | 'modules';
export type TypeDefsFileMode = 'merged' | 'mergedWhitelisted' | 'modules';
type StringFixObjectTypeResolvers = 'smart' | 'disabled';
type NormalizedFixObjectTypeResolvers = {
object: 'smart' | 'disabled';
enum: 'smart' | 'disabled';
};
type StringResolverGeneration = 'disabled' | 'recommended' | 'minimal' | 'all';
type NormalizedResolverGeneration = {
query: string | string[];
mutation: string | string[];
subscription: string | string[];
scalar: string | string[];
object: string | string[];
union: string | string[];
interface: string | string[];
enum: string | string[];
};
export type ModuleNamingMode = number;
export type ScalarsOverridesType = string | {
input: string;
output: string;
};
export interface ParsedPresetConfig {
add?: Record<string, AddPluginConfig>;
resolverTypesPath: string;
resolverRelativeTargetDir: string;
resolverMainFile: string;
resolverMainFileMode: ResolverMainFileMode;
resolverGeneration: NormalizedResolverGeneration;
typeDefsFilePath: string | false;
typeDefsFileMode: TypeDefsFileMode;
mappersRelativeTargetDir: string;
mappersFileExtension: string;
mappersSuffix: string;
moduleNamingMode: ModuleNamingMode;
scalarsModule: string | false;
scalarsOverrides: Record<string, {
resolver?: string;
type?: ScalarsOverridesType;
}>;
mergeSchema: {
path: string;
config: schemaAstPlugin.SchemaASTConfig;
} | false;
mode: ConfigMode;
whitelistedModules: string[];
blacklistedModules: string[];
externalResolvers: Record<string, string>;
typesPluginsConfig: ParsedTypesPluginsConfig;
tsMorphProjectOptions: ProjectOptions;
fixObjectTypeResolvers: NormalizedFixObjectTypeResolvers;
emitLegacyCommonJSImports: boolean;
}
export interface RawPresetConfig {
add?: Record<string, unknown>;
resolverTypesPath?: string;
resolverRelativeTargetDir?: string;
resolverMainFile?: string;
resolverMainFileMode?: string;
resolverGeneration?: string | Record<string, string | string[]>;
typeDefsFilePath?: string | boolean;
typeDefsFileMode?: string;
mappersRelativeTargetDir?: string;
mappersFileExtension?: string;
mappersSuffix?: string;
moduleNamingMode?: string | number;
scalarsModule?: string | boolean;
scalarsOverrides?: Record<string, {
resolver?: string;
type?: ScalarsOverridesType;
}>;
mergeSchema?: boolean | string | {
path: string;
config: unknown;
};
mode?: string;
whitelistedModules?: string[];
blacklistedModules?: string[];
externalResolvers?: Record<string, string>;
typesPluginsConfig?: typeScriptPlugin.TypeScriptPluginConfig & typeScriptResolversPlugin.TypeScriptResolversPluginConfig;
tsConfigFilePath?: string;
fixObjectTypeResolvers?: string | Record<string, string>;
emitLegacyCommonJSImports?: boolean;
}
export interface TypedPresetConfig extends RawPresetConfig {
add?: Record<string, AddPluginConfig>;
mode?: ConfigMode;
resolverMainFileMode?: ResolverMainFileMode;
typeDefsFileMode?: TypeDefsFileMode;
fixObjectTypeResolvers?: StringFixObjectTypeResolvers | NormalizedFixObjectTypeResolvers;
typesPluginsConfig?: ParsedTypesPluginsConfig;
resolverGeneration?: StringResolverGeneration | NormalizedResolverGeneration;
mergeSchema?: boolean | string | {
path: string;
config: schemaAstPlugin.SchemaASTConfig;
};
}
export declare const validatePresetConfig: ({ add, resolverTypesPath, resolverRelativeTargetDir, resolverMainFile, resolverMainFileMode, resolverGeneration, typeDefsFilePath, typeDefsFileMode: inputTypeDefsFileMode, mappersRelativeTargetDir, mappersFileExtension, mappersSuffix, moduleNamingMode, mergeSchema, scalarsModule, scalarsOverrides, mode, whitelistedModules, blacklistedModules, externalResolvers, typesPluginsConfig, tsConfigFilePath, fixObjectTypeResolvers, emitLegacyCommonJSImports, }: RawPresetConfig) => ParsedPresetConfig;
export {};