UNPKG

@nodeswork/sbase

Version:

Basic REST api foundation from Nodeswork.

28 lines (27 loc) 1.19 kB
import '../mongoose/model-config'; import * as Router from 'koa-router'; /** * Generate an overrides middleware to help build mongoose queries. * * 1. Fetch query params to override query: * overrides('request.query.status->query.status') * overrides('request.body.status->query.status') * * 2. Set object to override query: * overrides(['constValue', 'query.status']) * * 3. Extract object from ctx: * overrides([(ctx) => * moment(ctx.request.query.date).startOf('month').toDate(), * 'query.date', * ]) * * 4. Append to array target: * overrides(['constValue', 'query.$or.[].status']) */ export declare function overrides(...rules: OverrideRule[]): Router.IMiddleware; export declare function clearOverrides(): Router.IMiddleware; export declare type OverrideConst = object | string | number | boolean; export declare type OverrideRuleExtractFn = (ctx: Router.IRouterContext) => OverrideConst | Promise<OverrideConst>; export declare type OverrideRule = string | [OverrideConst, string, string?, ...any[]] | [OverrideRuleExtractFn, string, string?, ...any[]]; export declare type OverrideRuleFormat = 'regex' | 'date' | 'string' | 'seconds';