graphql-compose-mongoose
Version:
Plugin for `graphql-compose` which derive a graphql types from a mongoose model.
39 lines • 2.89 kB
TypeScript
import { EnumTypeComposer, SchemaComposer, ObjectTypeComposer, InterfaceTypeComposer, ObjectTypeComposerRelationOpts, ObjectTypeComposerFieldConfigDefinition, ObjectTypeComposerFieldConfigMapDefinition, ObjectTypeComposerFieldConfigAsObjectDefinition } from 'graphql-compose';
import type { Model } from 'mongoose';
import { ComposeWithMongooseOpts } from '../composeWithMongoose';
import { GraphQLObjectType } from 'graphql-compose/lib/graphql';
export interface ComposeWithMongooseDiscriminatorsOpts<TContext> extends ComposeWithMongooseOpts<TContext> {
reorderFields?: boolean | string[];
}
export declare class DiscriminatorTypeComposer<TSource, TContext> extends ObjectTypeComposer<TSource, TContext> {
discriminatorKey: string;
opts: ComposeWithMongooseDiscriminatorsOpts<TContext>;
childTCs: ObjectTypeComposer<any, TContext>[];
DInterface?: InterfaceTypeComposer<TSource, TContext>;
DKeyETC?: EnumTypeComposer<TContext>;
constructor(gqType: GraphQLObjectType, schemaComposer: SchemaComposer<TContext>);
static createFromModel<TSrc = any, TCtx = any>(baseModel: Model<any>, schemaComposer: SchemaComposer<TCtx>, opts?: ComposeWithMongooseDiscriminatorsOpts<any>): DiscriminatorTypeComposer<TSrc, TCtx>;
_createDInterface(baseTC: DiscriminatorTypeComposer<any, any>): InterfaceTypeComposer<TSource, TContext>;
getDKey(): string;
getDKeyETC(): EnumTypeComposer<TContext>;
getDInterface(): InterfaceTypeComposer<TSource, TContext>;
hasChildTC(DName: string): boolean;
discriminator<TSrc = Model<any>>(childModel: Model<any>, opts?: ComposeWithMongooseOpts<TContext>): ObjectTypeComposer<TSrc, TContext>;
setFields(fields: ObjectTypeComposerFieldConfigMapDefinition<any, any>): this;
setField(fieldName: string, fieldConfig: ObjectTypeComposerFieldConfigDefinition<any, any>): this;
addFields(newFields: ObjectTypeComposerFieldConfigMapDefinition<any, any>): this;
addNestedFields(newFields: ObjectTypeComposerFieldConfigMapDefinition<any, any>): this;
removeField(fieldNameOrArray: string | Array<string>): this;
removeOtherFields(fieldNameOrArray: string | Array<string>): this;
reorderFields(names: string[]): this;
extendField(fieldName: string, partialFieldConfig: Partial<ObjectTypeComposerFieldConfigAsObjectDefinition<any, TContext>>): this;
makeFieldNonNull(fieldNameOrArray: string | Array<string>): this;
makeFieldNullable(fieldNameOrArray: string | Array<string>): this;
makeFieldPlural(fieldNameOrArray: string | Array<string>): this;
makeFieldNonPlural(fieldNameOrArray: string | Array<string>): this;
deprecateFields(fields: {
[fieldName: string]: string;
} | string[] | string): this;
addRelation(fieldName: string, relationOpts: ObjectTypeComposerRelationOpts<any, any, any, any>): this;
}
//# sourceMappingURL=DiscriminatorTypeComposer.d.ts.map