UNPKG

@typegoose/typegoose

Version:

Define Mongoose models using TypeScript classes

52 lines (51 loc) 2.15 kB
/// <reference types="mongoose/types/aggregate" /> /// <reference types="mongoose/types/callback" /> /// <reference types="mongoose/types/collection" /> /// <reference types="mongoose/types/connection" /> /// <reference types="mongoose/types/cursor" /> /// <reference types="mongoose/types/document" /> /// <reference types="mongoose/types/error" /> /// <reference types="mongoose/types/expressions" /> /// <reference types="mongoose/types/helpers" /> /// <reference types="mongoose/types/middlewares" /> /// <reference types="mongoose/types/indexes" /> /// <reference types="mongoose/types/models" /> /// <reference types="mongoose/types/mongooseoptions" /> /// <reference types="mongoose/types/pipelinestage" /> /// <reference types="mongoose/types/populate" /> /// <reference types="mongoose/types/query" /> /// <reference types="mongoose/types/schemaoptions" /> /// <reference types="mongoose/types/schematypes" /> /// <reference types="mongoose/types/session" /> /// <reference types="mongoose/types/types" /> /// <reference types="mongoose/types/utility" /> /// <reference types="mongoose/types/validation" /> /// <reference types="mongoose/types/virtuals" /> /// <reference types="mongoose/types/inferschematype" /> /// <reference types="mongoose/types/inferrawdoctype" /> import type { Query } from 'mongoose'; import type { AnyParamConstructor, QueryHelperThis } from './types'; /** * Adds a query method to the Class which will then be added to the Schema. * @param func The Query Method to add * @example * ```ts * interface FindHelpers { * findByTitle: AsQueryMethod<typeof findByTitle>; * } * * function findByTitle(this: ReturnModelType<typeof Event, FindHelpers>, title: string) { * return this.find({ title }); * } * * @queryMethod(findByTitle) * class Event { * @prop() * public title: string; * } * * const EventModel = getModelForClass<typeof Event, FindHelpers>(Event); * ``` */ export declare function queryMethod<QueryHelpers, U extends AnyParamConstructor<any>>(func: (this: QueryHelperThis<U, QueryHelpers>, ...params: any[]) => Query<any, any>): ClassDecorator; export { queryMethod as QueryMethod };