UNPKG

arrest

Version:

OpenAPI v3 compliant REST framework for Node.js, with support for MongoDB and JSON-Schema

42 lines (41 loc) 1.73 kB
import { Collection, CollectionOptions, Db } from 'mongodb'; import { OpenAPIV3 } from 'openapi-police'; import { Operation } from '../operation.js'; import { Resource, ResourceDefinition, Routes } from '../resource.js'; import { Method } from '../types.js'; export interface MongoOperationFactory { new (resource: MongoResource, path: string, method: Method): Operation; } export interface MongoRoutes extends Routes { [path: string]: { ['get']?: MongoOperationFactory; ['put']?: MongoOperationFactory; ['post']?: MongoOperationFactory; ['delete']?: MongoOperationFactory; ['options']?: MongoOperationFactory; ['head']?: MongoOperationFactory; ['patch']?: MongoOperationFactory; }; } export interface MongoResourceDefinition extends ResourceDefinition { collection?: string; idIsObjectId?: boolean; createIndexes?: boolean; escapeProperties?: boolean; queryLimit?: number; } export declare class MongoResource extends Resource { info: MongoResourceDefinition; db: Promise<Db>; indexesChecked: boolean; constructor(db: string | Db | Promise<Db>, info: MongoResourceDefinition, routes?: MongoRoutes); protected initInfo(): void; get schema(): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject; get requestSchema(): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject; get responseSchema(): OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject; checkCollectionIndexes(coll: Collection): Promise<any>; getCollection(opts?: CollectionOptions): Promise<Collection>; protected getCollectionOptions(): CollectionOptions; protected getIndexes(): any[] | undefined; static defaultRoutes(): MongoRoutes; }