UNPKG

miter

Version:

A typescript web framework based on ExpressJs based loosely on SailsJs

66 lines (65 loc) 3.76 kB
import { Request, Response } from 'express'; import { StaticModelT, ModelT } from '../core/model'; import { CountAllResults } from '../core/db'; import { PolicyDescriptor } from '../core/policy'; export declare type PerformQueryT = { where: Object; include: string[]; order: [string, string][]; offset: number; limit: number; }; export declare type PerformFindOneQueryT = { where: Object; include: string[]; order: [string, string][]; }; export declare abstract class CrudController<T extends ModelT<any>> { private staticModel; protected readonly modelName: string; constructor(staticModel: StaticModelT<T>, modelName: string, pluralName?: string, singularName?: string); private splitOnWords(name); private getSingularPath(name); private getPluralPath(name); private _singularName; readonly singularName: string; private _pluralName; readonly pluralName: string; transformPathPart(routeFnName: string, part: string): string; transformRoutePolicies(routeFnName: string, fullPath: string, policies: PolicyDescriptor[]): PolicyDescriptor[]; protected getReadPolicies(): PolicyDescriptor[]; protected getQueryPolicies(): PolicyDescriptor[]; protected getCreatePolicies(): PolicyDescriptor[]; protected getMutatePolicies(): PolicyDescriptor[]; protected getDestroyPolicies(): PolicyDescriptor[]; protected transformInclude(req: Request, res: Response, include: string[]): Promise<string[] | void>; protected transformQuery(req: Request, res: Response, query: Object): Promise<Object | boolean>; protected performQuery(req: Request, res: Response, query: PerformQueryT): Promise<CountAllResults<T>>; protected performFindOneQuery(req: Request, res: Response, query: PerformFindOneQueryT): Promise<T | null>; protected transformQueryResults(req: Request, res: Response, results: CountAllResults<T>): Promise<{ results: T[]; count: any; page: number | undefined; perPage: number | undefined; } | undefined>; protected transformResult(req: Request, res: Response, result: T | null): Promise<T | null>; protected transformCreateQuery(req: Request, res: Response, query: Object): Promise<Object | false>; protected performCreate(req: Request, res: Response, data: object): Promise<T>; protected transformCreateResult(req: Request, res: Response, result: T): Promise<T>; protected transformUpdateQuery(req: Request, res: Response, query: Object): Promise<Object | false>; protected performUpdate(req: Request, res: Response, id: string | number, data: object, returning: boolean): Promise<[number | boolean, any]>; protected transformUpdateResult(req: Request, res: Response, result: T): Promise<T>; protected performDestroy(req: Request, res: Response, id: number): Promise<boolean>; protected beforeCreate(req: Request, res: Response, data: Object): Promise<void>; protected afterCreate(req: Request, res: Response, result: T): Promise<void>; protected beforeUpdate(req: Request, res: Response, updateId: number, data: Object): Promise<void>; protected afterUpdate(req: Request, res: Response, updateId: number, result?: T | null): Promise<void>; protected beforeDestroy(req: Request, res: Response, destroyId: number): Promise<void>; protected afterDestroy(req: Request, res: Response, destroyId: number): Promise<void>; create(req: Request, res: Response): Promise<void>; find(req: Request, res: Response): Promise<void>; count(req: Request, res: Response): Promise<void>; get(req: Request, res: Response): Promise<void>; update(req: Request, res: Response): Promise<void>; destroy(req: Request, res: Response): Promise<void>; }