graphql-compose-mongoose
Version:
Plugin for `graphql-compose` which derive a graphql types from a mongoose model.
53 lines • 2.8 kB
TypeScript
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