@pothos/plugin-sub-graph
Version:
A Pothos plugin for creating multiple variants or sub-selections of the same graph
262 lines • 11 kB
TypeScript
import './global-types.js';
import { BasePlugin, type PothosInputFieldConfig, type PothosOutputFieldConfig, type PothosTypeConfig, type SchemaTypes } from '@pothos/core';
import { type GraphQLFieldConfigMap, type GraphQLInputFieldConfigMap, GraphQLInputObjectType, GraphQLInterfaceType, type GraphQLNamedType, GraphQLObjectType, GraphQLSchema } from 'graphql';
declare const pluginName = "subGraph";
export default pluginName;
export declare class PothosSubGraphPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
static createSubGraph<Types extends SchemaTypes>(schema: GraphQLSchema, subGraph: string[] | string | {
all: string[];
}, builder: PothosSchemaTypes.SchemaBuilder<Types>): GraphQLSchema;
static filterTypes(types: readonly GraphQLNamedType[], subGraphs: string[], mode: 'any' | 'all'): Map<string, GraphQLNamedType>;
static filterFields(type: GraphQLInterfaceType | GraphQLObjectType, newTypes: Map<string, GraphQLNamedType>, subGraphs: string[], mode: 'any' | 'all'): () => GraphQLFieldConfigMap<unknown, unknown>;
static mapInputFields(type: GraphQLInputObjectType, newTypes: Map<string, GraphQLNamedType>, subGraphs: string[], mode: 'any' | 'all'): () => GraphQLInputFieldConfigMap;
afterBuild(schema: GraphQLSchema): GraphQLSchema;
onTypeConfig(typeConfig: PothosTypeConfig): {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
values: import("graphql").ThunkObjMap<import("graphql").GraphQLEnumValueConfig>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").EnumTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").EnumTypeExtensionNode>>;
kind: 'Enum';
graphqlKind: 'Enum';
pothosOptions: PothosSchemaTypes.EnumTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").InputObjectTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").InputObjectTypeExtensionNode>>;
isOneOf?: boolean;
kind: 'InputObject';
graphqlKind: 'InputObject';
pothosOptions: PothosSchemaTypes.InputObjectTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
resolveType?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").InterfaceTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").InterfaceTypeExtensionNode>>;
kind: 'Interface';
graphqlKind: 'Interface';
interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[];
pothosOptions: PothosSchemaTypes.InterfaceTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
kind: 'Mutation';
graphqlKind: 'Object';
pothosOptions: PothosSchemaTypes.MutationTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
kind: 'Object';
graphqlKind: 'Object';
interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[];
pothosOptions: PothosSchemaTypes.ObjectTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
kind: 'Query';
graphqlKind: 'Object';
pothosOptions: PothosSchemaTypes.QueryTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
specifiedByURL?: import("graphql/jsutils/Maybe.js").Maybe<string>;
serialize?: import("graphql").GraphQLScalarSerializer<unknown> | undefined;
parseValue?: import("graphql").GraphQLScalarValueParser<unknown> | undefined;
parseLiteral?: import("graphql").GraphQLScalarLiteralParser<unknown> | undefined;
coerceOutputValue?: import("graphql").GraphQLScalarOutputValueCoercer<unknown> | undefined;
coerceInputValue?: import("graphql").GraphQLScalarInputValueCoercer<unknown> | undefined;
coerceInputLiteral?: import("graphql").GraphQLScalarInputLiteralCoercer<unknown> | undefined;
valueToLiteral?: import("graphql/type/definition.js").GraphQLScalarValueToLiteral | undefined;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ScalarTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ScalarTypeExtensionNode>>;
kind: 'Scalar';
graphqlKind: 'Scalar';
pothosOptions: PothosSchemaTypes.ScalarTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
isTypeOf?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").ObjectTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").ObjectTypeExtensionNode>>;
kind: 'Subscription';
graphqlKind: 'Object';
pothosOptions: PothosSchemaTypes.SubscriptionTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
} | {
name: string;
description?: import("graphql/jsutils/Maybe.js").Maybe<string>;
resolveType?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>;
astNode?: import("graphql/jsutils/Maybe.js").Maybe<import("graphql").UnionTypeDefinitionNode>;
extensionASTNodes?: import("graphql/jsutils/Maybe.js").Maybe<ReadonlyArray<import("graphql").UnionTypeExtensionNode>>;
kind: 'Union';
graphqlKind: 'Union';
types: import("@pothos/core").ObjectParam<SchemaTypes>[];
pothosOptions: PothosSchemaTypes.UnionTypeOptions;
extensions: {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
} | {
subGraphs: string[];
};
};
onInputFieldConfig(fieldConfig: PothosInputFieldConfig<Types>): PothosInputFieldConfig<Types>;
onOutputFieldConfig(fieldConfig: PothosOutputFieldConfig<Types>): PothosOutputFieldConfig<Types>;
}
//# sourceMappingURL=index.d.ts.map