@pothos/plugin-directives
Version:
Directive plugin for Pothos, enables using graphql-tools based directives with Pothos
65 lines • 4.06 kB
TypeScript
import type { EnumValues, FieldNullability, FieldRequiredness, InputFieldMap, InputType, InterfaceParam, ObjectParam, RootName, SchemaTypes, TypeParam } from '@pothos/core';
import type { DirectiveLocation, Directives } from './types';
import type { PothosDirectivesPlugin } from '.';
declare global {
export namespace PothosSchemaTypes {
interface Plugins<Types extends SchemaTypes> {
directives: PothosDirectivesPlugin<Types>;
}
interface UserSchemaTypes {
Directives: Record<string, {
locations: DirectiveLocation;
args?: Record<string, unknown>;
}>;
}
interface ExtendDefaultTypes<PartialTypes extends Partial<UserSchemaTypes>> {
Directives: PartialTypes['Directives'] & {};
}
interface SchemaBuilderOptions<Types extends SchemaTypes> {
directives?: {
useGraphQLToolsUnorderedDirectives?: boolean;
};
}
interface V3SchemaBuilderOptions<Types extends SchemaTypes> {
directives: never;
useGraphQLToolsUnorderedDirectives?: boolean;
}
interface EnumTypeOptions<Types extends SchemaTypes = SchemaTypes, Values extends EnumValues<Types> = EnumValues<Types>> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'ENUM'>;
}
interface ObjectTypeOptions<Types extends SchemaTypes = SchemaTypes, Shape = unknown> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'OBJECT'>;
}
interface RootTypeOptions<Types extends SchemaTypes, Type extends RootName> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'OBJECT'>;
}
interface InputObjectTypeOptions<Types extends SchemaTypes = SchemaTypes, Fields extends InputFieldMap = InputFieldMap> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'INPUT_OBJECT'>;
}
interface InterfaceTypeOptions<Types extends SchemaTypes = SchemaTypes, Shape = unknown, Interfaces extends InterfaceParam<Types>[] = InterfaceParam<Types>[]> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'INTERFACE'>;
}
interface UnionTypeOptions<Types extends SchemaTypes = SchemaTypes, Member extends ObjectParam<Types> = ObjectParam<Types>> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'UNION'>;
}
interface ScalarTypeOptions<Types extends SchemaTypes = SchemaTypes, ScalarInputShape = unknown, ScalarOutputShape = unknown> extends BaseTypeOptions<Types> {
directives?: Directives<Types, 'SCALAR'>;
}
interface FieldOptions<Types extends SchemaTypes = SchemaTypes, ParentShape = unknown, Type extends TypeParam<Types> = TypeParam<Types>, Nullable extends FieldNullability<Type> = FieldNullability<Type>, Args extends InputFieldMap = InputFieldMap, ResolveShape = unknown, ResolveReturnShape = unknown> {
directives?: Directives<Types, 'FIELD_DEFINITION'>;
}
interface InputObjectFieldOptions<Types extends SchemaTypes = SchemaTypes, Type extends InputType<Types> | [InputType<Types>] = InputType<Types> | [InputType<Types>], Req extends FieldRequiredness<Type> = FieldRequiredness<Type>> {
directives?: Directives<Types, 'INPUT_FIELD_DEFINITION'>;
}
interface ArgFieldOptions<Types extends SchemaTypes = SchemaTypes, Type extends InputType<Types> | [InputType<Types>] = InputType<Types> | [InputType<Types>], Req extends FieldRequiredness<Type> = FieldRequiredness<Type>> {
directives?: Directives<Types, 'ARGUMENT_DEFINITION'>;
}
interface EnumValueConfig<Types extends SchemaTypes = SchemaTypes> {
directives?: Directives<Types, 'ENUM_VALUE'>;
}
interface BuildSchemaOptions<Types extends SchemaTypes> {
schemaDirectives?: Directives<Types, 'SCHEMA'>;
}
}
}
//# sourceMappingURL=global-types.d.ts.map