UNPKG

@graphql-mesh/fusion-composition

Version:

Basic composition utility for Fusion spec

69 lines (68 loc) 2.64 kB
import { type GraphQLFieldConfig, type GraphQLInputFieldConfig, type GraphQLNamedType, type GraphQLSchema } from 'graphql'; import { MapperKind } from '@graphql-tools/utils'; import type { SubgraphConfig, SubgraphTransform } from '../compose.js'; export declare const ignoreList: string[]; export type TypeRenamer = (opts: { typeName: string; type: GraphQLNamedType; subgraphConfig: SubgraphConfig; }) => string; export type FieldRenamer = (opts: { typeName: string; fieldName: string; type: GraphQLNamedType; field: GraphQLFieldConfig<any, any> | GraphQLInputFieldConfig; subgraphConfig: SubgraphConfig; }) => string; export type ArgumentRenamer = (opts: { typeName: string; fieldName: string; argName: string; subgraphConfig: SubgraphConfig; }) => string; export interface RenameTransformConfig { renames?: RenameTransformObject[]; typeRenamer?: TypeRenamer; fieldRenamer?: FieldRenamer; argRenamer?: ArgumentRenamer; } export interface RenameTransformObject { from: RenameConfig; to: RenameConfig; /** * Use regular expression to match the type name * @default false */ useRegExpForTypes?: boolean; /** * Use regular expression to match the field name * @default false */ useRegExpForFields?: boolean; /** * Use regular expression to match the argument name * @default false */ useRegExpForArguments?: boolean; /** * Flags to use in the Regular Expression */ regExpFlags?: string; /** * Flag to indicate whether certain default types (built-ins, scalars and other types specified an exclusion list) should be renamed or not. * * @default false */ includeDefaults?: boolean; } export interface RenameConfig { type?: string; field?: string; argument?: string; } export declare function createRenameTransform(opts: RenameTransformConfig): (schema: GraphQLSchema, subgraphConfig: SubgraphConfig) => GraphQLSchema; type MapperTypeKind = MapperKind.ROOT_OBJECT | MapperKind.OBJECT_TYPE | MapperKind.INTERFACE_TYPE | MapperKind.UNION_TYPE | MapperKind.ENUM_TYPE | MapperKind.INPUT_OBJECT_TYPE | MapperKind.SCALAR_TYPE | MapperKind.TYPE; export declare function createRenameTypeTransform(renameFn: TypeRenamer, kind?: MapperTypeKind): SubgraphTransform; export type MapperFieldKind = MapperKind.FIELD | MapperKind.ROOT_FIELD | MapperKind.OBJECT_FIELD | MapperKind.INTERFACE_FIELD | MapperKind.INPUT_OBJECT_FIELD; export declare function createRenameFieldTransform(renameFn: FieldRenamer, kind?: MapperFieldKind): SubgraphTransform; export {};