UNPKG

graphql-compose-mongoose

Version:

Plugin for `graphql-compose` which derive a graphql types from a mongoose model.

53 lines 2.8 kB
import type { Model, Schema } from 'mongoose'; import { Document } from 'mongoose'; import type { ComposeOutputTypeDefinition, EnumTypeComposer, ObjectTypeComposer, SchemaComposer } from 'graphql-compose'; import type { GraphQLScalarType } from 'graphql-compose/lib/graphql'; type MongooseFieldT = { path?: string; instance: string; caster?: any; embeddedSchemaType?: any; options?: { description?: string; alias?: string; }; originalRequiredValue?: string | (() => any); isRequired?: boolean; defaultValue?: any; enumValues?: string[] | number[]; schema?: Schema; _index?: { [optionName: string]: any; }; }; type MongooseFieldMapT = { [fieldName: string]: MongooseFieldT; }; type ComposeScalarType = string | GraphQLScalarType; export type MongoosePseudoModelT = { schema: Schema<any>; }; export declare enum ComplexTypes { ARRAY = "ARRAY", EMBEDDED = "EMBEDDED", DOCUMENT_ARRAY = "DOCUMENT_ARRAY", ENUM = "ENUM", REFERENCE = "REFERENCE", SCALAR = "SCALAR", MIXED = "MIXED", DECIMAL = "DECIMAL" } export declare function dotPathsToEmbedded(fields: MongooseFieldMapT): MongooseFieldMapT; export declare function getFieldsFromModel(model: Model<any> | MongoosePseudoModelT): MongooseFieldMapT; export declare function convertModelToGraphQL<TDoc extends Document, TContext>(model: Model<TDoc> | MongoosePseudoModelT, typeName: string, schemaComposer: SchemaComposer<TContext>): ObjectTypeComposer<TDoc, TContext>; export declare function convertSchemaToGraphQL(schema: Schema<any>, typeName: string, schemaComposer: SchemaComposer<any>): ObjectTypeComposer<any, any>; export declare function convertFieldToGraphQL(field: MongooseFieldT, prefix: string | undefined, schemaComposer: SchemaComposer<any>): ComposeOutputTypeDefinition<any>; export declare function deriveComplexType(field: MongooseFieldT): ComplexTypes; export declare function scalarToGraphQL(field: MongooseFieldT): ComposeScalarType; export declare function arrayToGraphQL(field: MongooseFieldT, prefix: string | undefined, schemaComposer: SchemaComposer<any>): ComposeOutputTypeDefinition<any>; export declare function embeddedToGraphQL(field: MongooseFieldT, prefix: string | undefined, schemaComposer: SchemaComposer<any>): ObjectTypeComposer<any, any>; export declare function enumToGraphQL(field: MongooseFieldT, prefix: string | undefined, schemaComposer: SchemaComposer<any>): EnumTypeComposer<any>; export declare function documentArrayToGraphQL(field: MongooseFieldT, prefix: string | undefined, schemaComposer: SchemaComposer<any>): [ObjectTypeComposer<any, any>]; export declare function referenceToGraphQL(field: MongooseFieldT): ComposeScalarType; export {}; //# sourceMappingURL=fieldsConverter.d.ts.map