mongodb-dynamic-api
Version:
Auto generated CRUD API for MongoDB using NestJS
51 lines (50 loc) • 2.11 kB
TypeScript
/// <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" />
import { IndexDefinition, IndexOptions, Schema } from 'mongoose';
import { RouteType } from './dynamic-api-route-type.type';
type HookEvent = RouteType;
type MongoDBQuery = 'deleteMany' | 'deleteOne' | 'find' | 'findOne' | 'findOneAndReplace' | 'findOneAndUpdate' | 'save' | 'updateMany' | 'updateOne';
type SchemaHook = {
type: HookEvent;
method: 'pre' | 'post';
callback: (...args: any[]) => void;
options?: {
document?: boolean;
query?: boolean;
};
};
export declare const queryByRouteTypeMap: Map<HookEvent, {
query: MongoDBQuery;
softDeletableQuery?: MongoDBQuery;
}>;
interface DynamicAPISchemaOptionsInterface {
indexes?: {
fields: IndexDefinition;
options?: IndexOptions;
}[];
hooks?: SchemaHook[];
customInit?: (schema: Schema) => void;
}
export type { SchemaHook, DynamicAPISchemaOptionsInterface };