UNPKG

@nodeswork/sbase

Version:

Basic REST api foundation from Nodeswork.

79 lines (78 loc) 1.95 kB
import { ConnectionOptions, Mongoose } from 'mongoose'; declare module 'koa' { interface Request { body: any; } } declare module 'koa-router' { interface IRouterContext { overrides?: IOverwrites; } } declare module 'mongoose' { interface SchemaOptions { discriminatorKey?: string; dataLevel?: DataLevelConfig; } interface Schema { dataLevel?: { levelMap: { [name: string]: string[]; }; }; parentSchema?: Schema; options?: SchemaOptions; api: { READONLY: string[]; AUTOGEN: string[]; [name: string]: string[]; }; } interface SchemaType { options?: SchemaTypeOptions; } } export interface IOverwrites { query?: { [name: string]: any; }; pagination?: { page: number; size: number; }; doc?: any; sort?: any; options?: any; } export interface SchemaTypeOptions { api?: string; } /** * Configuration for dataLevel. */ export interface DataLevelConfig { levels: string[] | object; default?: string; _levelsMap?: { [level: string]: object; }; } export interface ToJSONOption { level?: string; } export interface MultiTenancyOptions { enabled?: boolean; defaultCollectionNamespace?: string; tenants?: string[]; tenancyFn?: (prop: string) => string; uris?: string; options?: ConnectionOptions; onError?: (err: any, tenancy: string) => void; onMongooseInstanceCreated?: (mongoose: Mongoose, tenancy: string) => void; } export interface SBaseMongooseConfig { multiTenancy?: MultiTenancyOptions; } export declare const DEFAULT_MONGOOSE_MULTI_TENANCY_OPTIONS: MultiTenancyOptions; export declare const sbaseMongooseConfig: SBaseMongooseConfig; export declare function newMongooseInstance(sbaseConfig: SBaseMongooseConfig): Mongoose;