diff --git a/README.md b/README.md index b033341a..fc03fae6 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,8 @@ - [Params Options](#params-options) - [Validation Options](#validation-options) - [IntelliSense](#intellisense) - - [Method Override](#method-override) + - [Routes Override](#routes-override) + - [Adding Routes](#adding-routes) - [Additional Decorators](#additional-decorators) - [Example Project](#example-project) - [Contribution](#contribution) @@ -797,9 +798,9 @@ export class HeroesCrud { } ``` -### Method Override +### Routes Override -List of composed base methods: +List of composed base routes methods: ```typescript getManyBase( @@ -910,7 +911,28 @@ export class HeroesCrud { } ``` -**_Notice:_** new custom route decorators were created to simplify process: `@ParsedQuery()`, `@ParsedParams`, `@ParsedBody()`, and`@ParsedOptions()`. But you still can add your param decorators to any of the methods, e.g. `@Param()`, `@Session()`, etc. Or any of your own cutom route decorators. +**_Notice:_** new custom route decorators were created to simplify process: `@ParsedQuery()`, `@ParsedParams`, `@ParsedBody()`, and `@ParsedOptions()`. But you still can add your param decorators to any of the methods, e.g. `@Param()`, `@Session()`, etc. Or any of your own cutom route decorators. + +### Adding Routes + +Sometimes you might need to add a new route and to use `@ParsedQuery()`, `@ParsedParams`, `@ParsedOptions()` in it. You need to use `@UsePathInterceptors()` method decorator in order to do that: + +```typescript +... +import { UsePathInterceptors } from '@nestjsx/crud'; +... + +@UsePathInterceptors() +@Get('/export/list.xlsx') +async exportSome( + @ParsedQuery() query: RestfulParamsDto, + @ParsedOptions() options: CrudOptions, +) { + // some logic +} +``` + +By default this decorator will parse `query` and `param`. But you can specify what you need to parse by passing the appropriate argument (`@UsePathInterceptors('query')` or `@UsePathInterceptors('param')`). ### Additional Decorators diff --git a/dist/README.md b/dist/README.md index b033341a..fc03fae6 100644 --- a/dist/README.md +++ b/dist/README.md @@ -43,7 +43,8 @@ - [Params Options](#params-options) - [Validation Options](#validation-options) - [IntelliSense](#intellisense) - - [Method Override](#method-override) + - [Routes Override](#routes-override) + - [Adding Routes](#adding-routes) - [Additional Decorators](#additional-decorators) - [Example Project](#example-project) - [Contribution](#contribution) @@ -797,9 +798,9 @@ export class HeroesCrud { } ``` -### Method Override +### Routes Override -List of composed base methods: +List of composed base routes methods: ```typescript getManyBase( @@ -910,7 +911,28 @@ export class HeroesCrud { } ``` -**_Notice:_** new custom route decorators were created to simplify process: `@ParsedQuery()`, `@ParsedParams`, `@ParsedBody()`, and`@ParsedOptions()`. But you still can add your param decorators to any of the methods, e.g. `@Param()`, `@Session()`, etc. Or any of your own cutom route decorators. +**_Notice:_** new custom route decorators were created to simplify process: `@ParsedQuery()`, `@ParsedParams`, `@ParsedBody()`, and `@ParsedOptions()`. But you still can add your param decorators to any of the methods, e.g. `@Param()`, `@Session()`, etc. Or any of your own cutom route decorators. + +### Adding Routes + +Sometimes you might need to add a new route and to use `@ParsedQuery()`, `@ParsedParams`, `@ParsedOptions()` in it. You need to use `@UsePathInterceptors()` method decorator in order to do that: + +```typescript +... +import { UsePathInterceptors } from '@nestjsx/crud'; +... + +@UsePathInterceptors() +@Get('/export/list.xlsx') +async exportSome( + @ParsedQuery() query: RestfulParamsDto, + @ParsedOptions() options: CrudOptions, +) { + // some logic +} +``` + +By default this decorator will parse `query` and `param`. But you can specify what you need to parse by passing the appropriate argument (`@UsePathInterceptors('query')` or `@UsePathInterceptors('param')`). ### Additional Decorators diff --git a/dist/classes/restful-service.class.js b/dist/classes/restful-service.class.js index f9e17a32..a5b891ff 100644 --- a/dist/classes/restful-service.class.js +++ b/dist/classes/restful-service.class.js @@ -2,15 +2,17 @@ Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@nestjs/common"); class RestfulService { - constructor() { - } + constructor() { } createPageInfo(data, total, limit, offset) { return { data, count: data.length, total, page: Math.floor(offset / limit) + 1, - pageCount: limit && total ? Math.round(total / limit) : undefined, + pageCount: limit && total + ? Math.round(total / limit) + : + undefined, }; } throwBadRequestException(msg) { diff --git a/dist/classes/restful-service.class.js.map b/dist/classes/restful-service.class.js.map index e8a7176b..93f13658 100644 --- a/dist/classes/restful-service.class.js.map +++ b/dist/classes/restful-service.class.js.map @@ -1 +1 @@ -{"version":3,"file":"restful-service.class.js","sourceRoot":"","sources":["../../src/classes/restful-service.class.ts"],"names":[],"mappings":";;AAAA,2CAAwE;AAIxE,MAAsB,cAAc;IAGlC;IACA,CAAC;IAUM,cAAc,CAAC,IAAS,EAAE,KAAa,EAAE,KAAa,EAAE,MAAc;QAC3E,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;YACpC,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC;IACJ,CAAC;IAgBD,wBAAwB,CAAC,GAAS;QAChC,MAAM,IAAI,4BAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB,CAAC,IAAY;QACjC,MAAM,IAAI,0BAAiB,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;IACnD,CAAC;CACF;AA7CD,wCA6CC"} \ No newline at end of file +{"version":3,"file":"restful-service.class.js","sourceRoot":"","sources":["../../src/classes/restful-service.class.ts"],"names":[],"mappings":";;AAAA,2CAAwE;AAIxE,MAAsB,cAAc;IAGlC,gBAAe,CAAC;IAUT,cAAc,CACnB,IAAS,EACT,KAAa,EACb,KAAa,EACb,MAAc;QAEd,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;YACpC,SAAS,EACP,KAAK,IAAI,KAAK;gBACZ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC3B,CAAC;oBACC,SAAS;SAChB,CAAC;IACJ,CAAC;IAgBD,wBAAwB,CAAC,GAAS;QAChC,MAAM,IAAI,4BAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB,CAAC,IAAY;QACjC,MAAM,IAAI,0BAAiB,CAAC,GAAG,IAAI,YAAY,CAAC,CAAC;IACnD,CAAC;CACF;AArDD,wCAqDC"} \ No newline at end of file diff --git a/dist/constants.d.ts b/dist/constants.d.ts index f6829725..02689c6b 100644 --- a/dist/constants.d.ts +++ b/dist/constants.d.ts @@ -5,6 +5,7 @@ export declare const PARSED_QUERY_REQUEST_KEY = "NESTJSX_PARSED_QUERY_REQUEST_KE export declare const PARSED_PARAMS_REQUEST_KEY = "NESTJSX_PARSED_PARAMS_REQUEST_KEY"; export declare const PARSED_OPTIONS_METADATA = "NESTJSX_PARSED_OPTIONS_METADATA"; export declare const PARSED_BODY_METADATA = "NESTJSX_PARSED_BODY_METADATA"; +export declare const CRUD_OPTIONS_METADATA = "NESTJSX_CRUD_OPTIONS_METADATA"; export declare const CREATE_UPDATE: { groups: string[]; }; diff --git a/dist/constants.js b/dist/constants.js index e2461539..5ec22f93 100644 --- a/dist/constants.js +++ b/dist/constants.js @@ -8,6 +8,7 @@ exports.PARSED_QUERY_REQUEST_KEY = 'NESTJSX_PARSED_QUERY_REQUEST_KEY'; exports.PARSED_PARAMS_REQUEST_KEY = 'NESTJSX_PARSED_PARAMS_REQUEST_KEY'; exports.PARSED_OPTIONS_METADATA = 'NESTJSX_PARSED_OPTIONS_METADATA'; exports.PARSED_BODY_METADATA = 'NESTJSX_PARSED_BODY_METADATA'; +exports.CRUD_OPTIONS_METADATA = 'NESTJSX_CRUD_OPTIONS_METADATA'; exports.CREATE_UPDATE = { groups: [crud_validate_enum_1.CrudValidate.CREATE, crud_validate_enum_1.CrudValidate.UPDATE], }; diff --git a/dist/constants.js.map b/dist/constants.js.map index e98be132..d987c82d 100644 --- a/dist/constants.js.map +++ b/dist/constants.js.map @@ -1 +1 @@ -{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;AAAA,mEAA0D;AAE7C,QAAA,sBAAsB,GAAG,gCAAgC,CAAC;AAC1D,QAAA,oBAAoB,GAAG,8BAA8B,CAAC;AACtD,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAC9D,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,mCAAmC,CAAC;AAChE,QAAA,uBAAuB,GAAG,iCAAiC,CAAC;AAC5D,QAAA,oBAAoB,GAAG,8BAA8B,CAAC;AAEtD,QAAA,aAAa,GAAyB;IACjD,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,EAAE,iCAAY,CAAC,MAAM,CAAC;CACnD,CAAC;AACW,QAAA,MAAM,GAAyB,EAAE,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,CAAC,EAAE,CAAC;AACjE,QAAA,MAAM,GAAyB,EAAE,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,CAAC,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;AAAA,mEAA0D;AAE7C,QAAA,sBAAsB,GAAG,gCAAgC,CAAC;AAC1D,QAAA,oBAAoB,GAAG,8BAA8B,CAAC;AACtD,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAC9D,QAAA,wBAAwB,GAAG,kCAAkC,CAAC;AAC9D,QAAA,yBAAyB,GAAG,mCAAmC,CAAC;AAChE,QAAA,uBAAuB,GAAG,iCAAiC,CAAC;AAC5D,QAAA,oBAAoB,GAAG,8BAA8B,CAAC;AACtD,QAAA,qBAAqB,GAAG,+BAA+B,CAAC;AAExD,QAAA,aAAa,GAAyB;IACjD,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,EAAE,iCAAY,CAAC,MAAM,CAAC;CACnD,CAAC;AACW,QAAA,MAAM,GAAyB,EAAE,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,CAAC,EAAE,CAAC;AACjE,QAAA,MAAM,GAAyB,EAAE,MAAM,EAAE,CAAC,iCAAY,CAAC,MAAM,CAAC,EAAE,CAAC"} \ No newline at end of file diff --git a/dist/decorators/crud.decorator.js b/dist/decorators/crud.decorator.js index 3e069347..e1873ce9 100644 --- a/dist/decorators/crud.decorator.js +++ b/dist/decorators/crud.decorator.js @@ -26,7 +26,7 @@ const baseRoutesInit = { helpers_1.setRouteArgs(Object.assign({}, helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_QUERY_REQUEST_KEY, 0), helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_OPTIONS_METADATA, 1)), target, name); helpers_1.setParamTypes([dto_1.RestfulParamsDto, Object], prototype, name); helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), + interceptors_1.RestfulParamsInterceptor, interceptors_1.RestfulQueryInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.getManyBase), ], prototype[name]); @@ -44,7 +44,7 @@ const baseRoutesInit = { helpers_1.setRouteArgs(Object.assign({}, helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_QUERY_REQUEST_KEY, 0), helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_OPTIONS_METADATA, 1)), target, name); helpers_1.setParamTypes([dto_1.RestfulParamsDto, Object], prototype, name); helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), + interceptors_1.RestfulParamsInterceptor, interceptors_1.RestfulQueryInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.getOneBase), ], prototype[name]); @@ -63,10 +63,7 @@ const baseRoutesInit = { helpers_1.setValidationPipe(crudOptions, enums_1.CrudValidate.CREATE), ])), target, name); helpers_1.setParamTypes([Array, dto], prototype, name); - helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), - ...helpers_1.getRouteInterceptors(crudOptions.routes.createOneBase), - ], prototype[name]); + helpers_1.setInterceptors([interceptors_1.RestfulParamsInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.createOneBase)], prototype[name]); helpers_1.setAction(enums_1.CrudActions.CreateOne, prototype[name]); helpers_1.setSwaggerParams(prototype[name], crudOptions); helpers_1.setSwaggerOperation(prototype[name], `Create one ${dto.name}`); @@ -90,14 +87,12 @@ const baseRoutesInit = { Type((t) => dto), __metadata("design:type", Array) ], BulkDto.prototype, "bulk", void 0); + const BultDtoType = utils_1.hasValidator ? BulkDto : {}; helpers_1.setRouteArgs(Object.assign({}, helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_PARAMS_REQUEST_KEY, 0), helpers_1.createParamMetadata(route_paramtypes_enum_1.RouteParamtypes.BODY, 1, [ helpers_1.setValidationPipe(crudOptions, enums_1.CrudValidate.CREATE), ])), target, name); - helpers_1.setParamTypes([Array, utils_1.hasValidator ? BulkDto : {}], prototype, name); - helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), - ...helpers_1.getRouteInterceptors(crudOptions.routes.createManyBase), - ], prototype[name]); + helpers_1.setParamTypes([Array, BultDtoType], prototype, name); + helpers_1.setInterceptors([interceptors_1.RestfulParamsInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.createManyBase)], prototype[name]); helpers_1.setAction(enums_1.CrudActions.CreateMany, prototype[name]); helpers_1.setSwaggerParams(prototype[name], crudOptions); helpers_1.setSwaggerOperation(prototype[name], `Create many ${dto.name}`); @@ -112,10 +107,7 @@ const baseRoutesInit = { helpers_1.setValidationPipe(crudOptions, enums_1.CrudValidate.UPDATE), ])), target, name); helpers_1.setParamTypes([Array, dto], prototype, name); - helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), - ...helpers_1.getRouteInterceptors(crudOptions.routes.updateOneBase), - ], prototype[name]); + helpers_1.setInterceptors([interceptors_1.RestfulParamsInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.updateOneBase)], prototype[name]); helpers_1.setAction(enums_1.CrudActions.UpdateOne, prototype[name]); helpers_1.setSwaggerParams(prototype[name], crudOptions); helpers_1.setSwaggerOperation(prototype[name], `Update one ${dto.name}`); @@ -128,10 +120,7 @@ const baseRoutesInit = { }; helpers_1.setRouteArgs(Object.assign({}, helpers_1.createCustomRequestParamMetadata(constants_1.PARSED_PARAMS_REQUEST_KEY, 0)), target, name); helpers_1.setParamTypes([Array], prototype, name); - helpers_1.setInterceptors([ - interceptors_1.RestfulParamsInterceptorFactory(crudOptions), - ...helpers_1.getRouteInterceptors(crudOptions.routes.deleteOneBase), - ], prototype[name]); + helpers_1.setInterceptors([interceptors_1.RestfulParamsInterceptor, ...helpers_1.getRouteInterceptors(crudOptions.routes.deleteOneBase)], prototype[name]); helpers_1.setAction(enums_1.CrudActions.DeleteOne, prototype[name]); helpers_1.setSwaggerParams(prototype[name], crudOptions); helpers_1.setSwaggerOperation(prototype[name], `Delete one ${dto.name}`); @@ -185,7 +174,7 @@ exports.Crud = (dto, crudOptions = {}) => (target) => { const prototype = target.prototype; const baseRoutes = getBaseRoutesSchema(); const path = helpers_1.getControllerPath(target); - helpers_1.setDefaultCrudOptions(crudOptions); + helpers_1.setDefaultCrudOptions(crudOptions, target); const slug = helpers_1.getRoutesSlugName(crudOptions, path); Object.keys(baseRoutes).forEach((name) => { const route = baseRoutes[name]; @@ -198,21 +187,21 @@ exports.Crud = (dto, crudOptions = {}) => (target) => { } }); Object.getOwnPropertyNames(prototype).forEach((name) => { - const overrided = helpers_1.getOverrideMetadata(prototype[name]); - const route = baseRoutes[overrided]; - if (overrided && route && route.enable) { + const override = helpers_1.getOverrideMetadata(prototype[name]); + const route = baseRoutes[override]; + if (override && route && route.enable) { const interceptors = helpers_1.getInterceptors(prototype[name]) || []; - const baseInterceptors = helpers_1.getInterceptors(prototype[overrided]) || []; - const baseAction = helpers_1.getAction(prototype[overrided]); - const baseSwaggerParams = helpers_1.getSwaggerParams(prototype[overrided]); - const baseSwaggerOkResponse = helpers_1.getSwaggeOkResponse(prototype[overrided]); - const baseSwaggerOperation = helpers_1.getSwaggerOperation(prototype[overrided]); + const baseInterceptors = helpers_1.getInterceptors(prototype[override]); + const baseAction = helpers_1.getAction(prototype[override]); + const baseSwaggerParams = helpers_1.getSwaggerParams(prototype[override]); + const baseSwaggerOkResponse = helpers_1.getSwaggeOkResponse(prototype[override]); + const baseSwaggerOperation = helpers_1.getSwaggerOperation(prototype[override]); helpers_1.setInterceptors([...baseInterceptors, ...interceptors], prototype[name]); helpers_1.setAction(baseAction, prototype[name]); helpers_1.setSwaggerParamsMeta(baseSwaggerParams, prototype[name]); helpers_1.setSwaggerOkResponseMeta(baseSwaggerOkResponse, prototype[name]); helpers_1.setSwaggerOperationMeta(baseSwaggerOperation, prototype[name]); - helpers_1.overrideParsedBody(target, overrided, name); + helpers_1.overrideParsedBody(target, override, name); helpers_1.setRoute(route.path, route.method, prototype[name]); route.override = true; } diff --git a/dist/decorators/crud.decorator.js.map b/dist/decorators/crud.decorator.js.map index 74a59c43..88bc4699 100644 --- a/dist/decorators/crud.decorator.js.map +++ b/dist/decorators/crud.decorator.js.map @@ -1 +1 @@ -{"version":3,"file":"crud.decorator.js","sourceRoot":"","sources":["../../src/decorators/crud.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"crud.decorator.js","sourceRoot":"","sources":["../../src/decorators/crud.decorator.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/decorators/helpers.d.ts b/dist/decorators/helpers.d.ts index 81f685ef..7ffca6e5 100644 --- a/dist/decorators/helpers.d.ts +++ b/dist/decorators/helpers.d.ts @@ -9,11 +9,12 @@ export declare function setRouteArgs(metadata: any, target: object, name: string export declare function setInterceptors(interceptors: any[], func: Function): void; export declare function setAction(action: CrudActions, func: Function): void; export declare function setParsedBody(meta: any, func: Function): void; +export declare function setCrudOptionsMeta(crudOptions: CrudOptions, target: any): void; export declare function setSwaggerOkResponseMeta(meta: any, func: Function): void; export declare function setSwaggerOperationMeta(meta: any, func: Function): void; export declare function setSwaggerParamsMeta(meta: any, func: Function): void; export declare function setSwaggerOkResponse(func: Function, dto: any, isArray?: boolean): void; -export declare function setSwaggerOperation(func: Function, summary?: string): void; +export declare function setSwaggerOperation(func: Function, summary: string): void; export declare function setSwaggerParams(func: Function, crudOptions: CrudOptions): void; export declare function setSwaggerQueryGetOne(func: Function): void; export declare function setSwaggerQueryGetMany(func: Function, name: string): void; @@ -29,9 +30,10 @@ export declare function getControllerPath(target: any): string; export declare function getSwaggerParams(func: Function): any[]; export declare function getSwaggeOkResponse(func: Function): any; export declare function getSwaggerOperation(func: Function): any; +export declare function getCrudOptionsMeta(target: any): CrudOptions; export declare function setValidationPipe(crudOptions: CrudOptions, group: CrudValidate): ValidationPipe; export declare function enableRoute(name: BaseRouteName, crudOptions: CrudOptions): boolean; -export declare function setDefaultCrudOptions(crudOptions: CrudOptions): void; +export declare function setDefaultCrudOptions(crudOptions: CrudOptions, target: any): void; export declare function getRoutesSlugName(crudOptions: CrudOptions, path: string): string; export declare function getRouteInterceptors(routeOptions: any): any[]; export declare function cleanRoutesOptionsInterceptors(crudOptions: CrudOptions): void; diff --git a/dist/decorators/helpers.js b/dist/decorators/helpers.js index 48586509..e805b96e 100644 --- a/dist/decorators/helpers.js +++ b/dist/decorators/helpers.js @@ -31,6 +31,10 @@ function setParsedBody(meta, func) { Reflect.defineMetadata(constants_2.PARSED_BODY_METADATA, meta, func); } exports.setParsedBody = setParsedBody; +function setCrudOptionsMeta(crudOptions, target) { + Reflect.defineMetadata(constants_2.CRUD_OPTIONS_METADATA, crudOptions, target); +} +exports.setCrudOptionsMeta = setCrudOptionsMeta; function setSwaggerOkResponseMeta(meta, func) { if (utils_1.swagger) { Reflect.defineMetadata(utils_1.swagger.DECORATORS.API_RESPONSE, meta, func); @@ -63,7 +67,7 @@ function setSwaggerOkResponse(func, dto, isArray) { } } exports.setSwaggerOkResponse = setSwaggerOkResponse; -function setSwaggerOperation(func, summary = '') { +function setSwaggerOperation(func, summary) { if (utils_1.swagger) { const metadata = getSwaggerOperation(func); setSwaggerOperationMeta(Object.assign(metadata, { summary }), func); @@ -175,7 +179,7 @@ function setSwaggerQueryGetMany(func, name) { }, { name: 'per_page', - description: `Alias for limit`, + description: `

Alias for limit

`, required: false, in: 'query', type: Number, @@ -259,11 +263,16 @@ function getSwaggerOperation(func) { } } exports.getSwaggerOperation = getSwaggerOperation; +function getCrudOptionsMeta(target) { + return Reflect.getMetadata(constants_2.CRUD_OPTIONS_METADATA, target); +} +exports.getCrudOptionsMeta = getCrudOptionsMeta; function setValidationPipe(crudOptions, group) { const options = crudOptions.validation || {}; return utils_1.hasValidator ? new common_1.ValidationPipe(Object.assign({}, options, { groups: [group], transform: false })) - : undefined; + : + undefined; } exports.setValidationPipe = setValidationPipe; function enableRoute(name, crudOptions) { @@ -276,7 +285,7 @@ function enableRoute(name, crudOptions) { return true; } exports.enableRoute = enableRoute; -function setDefaultCrudOptions(crudOptions) { +function setDefaultCrudOptions(crudOptions, target) { const check = (obj) => shared_utils_1.isNil(obj) || !shared_utils_1.isObject(obj) || !Object.keys(obj).length; if (check(crudOptions.params)) { crudOptions.params = { id: 'number' }; @@ -302,6 +311,7 @@ function setDefaultCrudOptions(crudOptions) { if (check(crudOptions.routes.deleteOneBase)) { crudOptions.routes.deleteOneBase = { returnDeleted: false, interceptors: [] }; } + setCrudOptionsMeta(crudOptions, target); } exports.setDefaultCrudOptions = setDefaultCrudOptions; function getRoutesSlugName(crudOptions, path) { diff --git a/dist/decorators/helpers.js.map b/dist/decorators/helpers.js.map index b3711ce7..ff93f0e7 100644 --- a/dist/decorators/helpers.js.map +++ b/dist/decorators/helpers.js.map @@ -1 +1 @@ -{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/decorators/helpers.ts"],"names":[],"mappings":";;AAAA,2CAA+D;AAC/D,sFAA6E;AAC7E,oEAAoE;AACpE,wDAOkC;AAKlC,4CAAoG;AACpG,oCAA6D;AAE7D,SAAgB,QAAQ,CAAC,IAAY,EAAE,MAAqB,EAAE,IAAc;IAC1E,OAAO,CAAC,cAAc,CAAC,yBAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,CAAC,cAAc,CAAC,2BAAe,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAHD,4BAGC;AAED,SAAgB,aAAa,CAAC,IAAW,EAAE,SAAc,EAAE,IAAY;IACrE,OAAO,CAAC,cAAc,CAAC,+BAAmB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAFD,sCAEC;AAED,SAAgB,YAAY,CAAC,QAAa,EAAE,MAAc,EAAE,IAAY;IACtE,OAAO,CAAC,cAAc,CAAC,+BAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAFD,oCAEC;AAED,SAAgB,eAAe,CAAC,YAAmB,EAAE,IAAc;IACjE,OAAO,CAAC,cAAc,CAAC,iCAAqB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAFD,0CAEC;AAED,SAAgB,SAAS,CAAC,MAAmB,EAAE,IAAc;IAC3D,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,8BAEC;AAED,SAAgB,aAAa,CAAC,IAAI,EAAE,IAAc;IAChD,OAAO,CAAC,cAAc,CAAC,gCAAoB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC3D,CAAC;AAFD,sCAEC;AAED,SAAgB,wBAAwB,CAAC,IAAS,EAAE,IAAc;IAChE,IAAI,eAAO,EAAE;QAEX,OAAO,CAAC,cAAc,CAAC,eAAO,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACrE;AACH,CAAC;AALD,4DAKC;AAED,SAAgB,uBAAuB,CAAC,IAAS,EAAE,IAAc;IAC/D,IAAI,eAAO,EAAE;QAEX,OAAO,CAAC,cAAc,CAAC,eAAO,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACtE;AACH,CAAC;AALD,0DAKC;AAED,SAAgB,oBAAoB,CAAC,IAAS,EAAE,IAAc;IAC5D,IAAI,eAAO,EAAE;QAEX,OAAO,CAAC,cAAc,CAAC,eAAO,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACvE;AACH,CAAC;AALD,oDAKC;AAED,SAAgB,oBAAoB,CAAC,IAAc,EAAE,GAAQ,EAAE,OAAiB;IAC9E,IAAI,eAAO,EAAE;QAEX,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,eAAe,GAAG;YACtB,CAAC,GAAG,CAAC,EAAE;gBACL,IAAI,EAAE,GAAG;gBACT,OAAO;gBACP,WAAW,EAAE,EAAE;aAChB;SACF,CAAC;QAEF,wBAAwB,mBAAM,QAAQ,EAAK,eAAe,GAAI,IAAI,CAAC,CAAC;KACrE;AACH,CAAC;AAfD,oDAeC;AAED,SAAgB,mBAAmB,CAAC,IAAc,EAAE,UAAkB,EAAE;IACtE,IAAI,eAAO,EAAE;QAEX,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE3C,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;KACrE;AACH,CAAC;AAPD,kDAOC;AAED,SAAgB,gBAAgB,CAAC,IAAc,EAAE,WAAwB;IACvE,IAAI,eAAO,EAAE;QAEX,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,EAAE,GAAG;YACT,QAAQ,EAAE,IAAI;YACd,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;SAC7D,CAAC,CAAC,CAAC;QAEJ,oBAAoB,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;KACtD;AACH,CAAC;AAdD,4CAcC;AAED,SAAgB,qBAAqB,CAAC,IAAc;IAClD,IAAI,eAAO,EAAE;QAEX,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wLAAwL;gBACrM,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,k0BAAk0B;gBAC/0B,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,gHAAgH;gBAC7H,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,oBAAoB,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;KACtD;AACH,CAAC;AA/BD,sDA+BC;AAED,SAAgB,sBAAsB,CAAC,IAAc,EAAE,IAAY;IACjE,IAAI,eAAO,EAAE;QAEX,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wLAAwL;gBACrM,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,69DAA69D;gBAC1+D,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,ogDAAogD;gBACjhD,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,gQAAgQ;gBAC7Q,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,k0BAAk0B;gBAC/0B,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,iJAAiJ;gBAC9J,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kJAAkJ;gBAC/J,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,sPAAsP;gBACnQ,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,iBAAiB;gBAC9B,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,gHAAgH;gBAC7H,QAAQ,EAAE,KAAK;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,oBAAoB,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;KACtD;AACH,CAAC;AAhFD,wDAgFC;AAED,SAAgB,mBAAmB,CACjC,SAA0B,EAC1B,KAAa,EACb,QAAe,EAAE,EACjB,IAAI,GAAG,SAAS;IAEhB,OAAO;QACL,CAAC,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC,EAAE;YACzB,KAAK;YACL,KAAK;YACL,IAAI;SACL;KACF,CAAC;AACJ,CAAC;AAbD,kDAaC;AAED,SAAgB,gCAAgC,CAC9C,SAAiB,EACjB,KAAa,EACb,QAAe,EAAE,EACjB,IAAI,GAAG,SAAS;IAEhB,OAAO;QACL,CAAC,GAAG,SAAS,GAAG,sCAA0B,IAAI,KAAK,EAAE,CAAC,EAAE;YACtD,KAAK;YACL,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;YACtC,IAAI;YACJ,KAAK;SACN;KACF,CAAC;AACJ,CAAC;AAdD,4EAcC;AAED,SAAgB,mBAAmB,CAAC,IAAc;IAChD,OAAO,OAAO,CAAC,WAAW,CAAC,oCAAwB,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC;AAFD,kDAEC;AAED,SAAgB,eAAe,CAAC,IAAc;IAC5C,OAAO,OAAO,CAAC,WAAW,CAAC,iCAAqB,EAAE,IAAI,CAAC,CAAC;AAC1D,CAAC;AAFD,0CAEC;AAED,SAAgB,SAAS,CAAC,IAAc;IACtC,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAFD,8BAEC;AAED,SAAgB,aAAa,CAAC,IAAc;IAC1C,OAAO,OAAO,CAAC,WAAW,CAAC,gCAAoB,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAFD,sCAEC;AAED,SAAgB,aAAa,CAAC,SAAc,EAAE,IAAY;IACxD,OAAO,OAAO,CAAC,WAAW,CAAC,+BAAmB,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC;AAFD,sCAEC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,OAAO,OAAO,CAAC,WAAW,CAAC,+BAAmB,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,MAAM;IACtC,OAAO,OAAO,CAAC,WAAW,CAAC,yBAAa,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAFD,8CAEC;AAED,SAAgB,gBAAgB,CAAC,IAAc;IAC7C,IAAI,eAAO,EAAE;QAEX,OAAO,OAAO,CAAC,WAAW,CAAC,eAAO,CAAC,UAAU,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KAC3E;AACH,CAAC;AALD,4CAKC;AAED,SAAgB,mBAAmB,CAAC,IAAc;IAChD,IAAI,eAAO,EAAE;QAEX,OAAO,OAAO,CAAC,WAAW,CAAC,eAAO,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KACzE;AACH,CAAC;AALD,kDAKC;AAED,SAAgB,mBAAmB,CAAC,IAAc;IAChD,IAAI,eAAO,EAAE;QAEX,OAAO,OAAO,CAAC,WAAW,CAAC,eAAO,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;KAC1E;AACH,CAAC;AALD,kDAKC;AAED,SAAgB,iBAAiB,CAAC,WAAwB,EAAE,KAAmB;IAC7E,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,IAAI,EAAE,CAAC;IAE7C,OAAO,oBAAY;QACjB,CAAC,CAAC,IAAI,uBAAc,mBACb,OAAO,IACV,MAAM,EAAE,CAAC,KAAK,CAAC,EACf,SAAS,EAAE,KAAK,IAChB;QACJ,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAVD,8CAUC;AAED,SAAgB,WAAW,CAAC,IAAmB,EAAE,WAAwB;IACvE,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE;QAC7D,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;KAC9D;IAED,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE;QACnE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;KACxE;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAVD,kCAUC;AAED,SAAgB,qBAAqB,CAAC,WAAwB;IAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IAGhF,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QAC7B,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;KACvC;IAGD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;QAC7B,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;KACzB;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;QACzC,WAAW,CAAC,MAAM,CAAC,WAAW,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KACvD;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;QACxC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KACtD;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC3C,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KACzD;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;QAC5C,WAAW,CAAC,MAAM,CAAC,cAAc,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KAC1D;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC3C,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,mBAAmB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KACrF;IAED,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;QAC3C,WAAW,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;KAC/E;AACH,CAAC;AApCD,sDAoCC;AAED,SAAgB,iBAAiB,CAAC,WAAwB,EAAE,IAAY;IACtE,IAAI,CAAC,oBAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QACjC,OAAO,IAAI,CAAC;KACb;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACjG,CAAC;AAND,8CAMC;AAED,SAAgB,oBAAoB,CAAC,YAAiB;IACpD,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AACnF,CAAC;AAFD,oDAEC;AAED,SAAgB,8BAA8B,CAAC,WAAwB;IACrE,MAAM,CAAC,IAAI,CAAgB,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAChE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,MAAM,EAAE;YAC7C,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,GAAG,EAAE,CAAC;SAC9C;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAND,wEAMC;AAED,SAAgB,kBAAkB,CAAC,MAAW,EAAE,QAAuB,EAAE,IAAY;IACnF,MAAM,OAAO,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,CAAoB,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;IAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAElD,IAAI,QAAQ,IAAI,UAAU,EAAE;QAC1B,MAAM,OAAO,GAAG,GAAG,uCAAe,CAAC,IAAI,IAAI,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,uCAAe,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1D,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,YAAY,mBAEL,SAAS,IACZ,CAAC,GAAG,CAAC,oBACA,eAAe,IAClB,KAAK,EAAE,UAAU,CAAC,KAAK,QAG3B,MAAM,EACN,IAAI,CACL,CAAC;QAEF,IAAI,QAAQ,KAAK,gBAAgB,EAAE;YACjC,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAU,CAAC;YAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,oBAAK,CAAC,QAAQ,CAAC,CAAC;YAEpE,IAAI,MAAM,EAAE;gBACV,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC1D,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACvC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;gBACrD,aAAa,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;aAC5C;SACF;KACF;AACH,CAAC;AAtCD,gDAsCC"} \ No newline at end of file +{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/decorators/helpers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/decorators/index.d.ts b/dist/decorators/index.d.ts index 2fee9ecb..6cf880a5 100644 --- a/dist/decorators/index.d.ts +++ b/dist/decorators/index.d.ts @@ -4,3 +4,4 @@ export * from './parsed-params.decorator'; export * from './parsed-query.decorator'; export * from './parsed-options.decorator'; export * from './parsed-body.decorator'; +export * from './use-path-interceptors.decorator'; diff --git a/dist/decorators/index.js b/dist/decorators/index.js index 141bd71b..2daa23d7 100644 --- a/dist/decorators/index.js +++ b/dist/decorators/index.js @@ -9,4 +9,5 @@ __export(require("./parsed-params.decorator")); __export(require("./parsed-query.decorator")); __export(require("./parsed-options.decorator")); __export(require("./parsed-body.decorator")); +__export(require("./use-path-interceptors.decorator")); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/decorators/index.js.map b/dist/decorators/index.js.map index b8f526f9..e28252d9 100644 --- a/dist/decorators/index.js.map +++ b/dist/decorators/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C;AAC3C,sCAAiC;AACjC,+CAA0C;AAC1C,8CAAyC;AACzC,gDAA2C;AAC3C,6CAAwC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;AAAA,gDAA2C;AAC3C,sCAAiC;AACjC,+CAA0C;AAC1C,8CAAyC;AACzC,gDAA2C;AAC3C,6CAAwC;AACxC,uDAAkD"} \ No newline at end of file diff --git a/dist/decorators/use-path-interceptors.decorator.d.ts b/dist/decorators/use-path-interceptors.decorator.d.ts new file mode 100644 index 00000000..c073d2af --- /dev/null +++ b/dist/decorators/use-path-interceptors.decorator.d.ts @@ -0,0 +1 @@ +export declare function UsePathInterceptors(...names: Array<'query' | 'param'>): (target: any, key?: any, descriptor?: any) => any; diff --git a/dist/decorators/use-path-interceptors.decorator.js b/dist/decorators/use-path-interceptors.decorator.js new file mode 100644 index 00000000..8d3b78c6 --- /dev/null +++ b/dist/decorators/use-path-interceptors.decorator.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const extend_metadata_util_1 = require("@nestjs/common/utils/extend-metadata.util"); +const constants_1 = require("@nestjs/common/constants"); +const interceptors_1 = require("../interceptors"); +function UsePathInterceptors(...names) { + return (target, key, descriptor) => { + const all = ['query', 'param']; + const every = (arr) => all.every((n) => arr.some((name) => name === n)); + const some = (arr, name) => arr.some((n) => name === n); + let interceptors = []; + if (!names.length || every(names)) { + interceptors = [interceptors_1.RestfulQueryInterceptor, interceptors_1.RestfulParamsInterceptor]; + } + else if (some(names, 'query')) { + interceptors = [interceptors_1.RestfulQueryInterceptor]; + } + else if (some(names, 'param')) { + interceptors = [interceptors_1.RestfulParamsInterceptor]; + } + if (descriptor) { + extend_metadata_util_1.extendArrayMetadata(constants_1.INTERCEPTORS_METADATA, interceptors, descriptor.value); + return descriptor; + } + extend_metadata_util_1.extendArrayMetadata(constants_1.INTERCEPTORS_METADATA, interceptors, target); + return target; + }; +} +exports.UsePathInterceptors = UsePathInterceptors; +//# sourceMappingURL=use-path-interceptors.decorator.js.map \ No newline at end of file diff --git a/dist/decorators/use-path-interceptors.decorator.js.map b/dist/decorators/use-path-interceptors.decorator.js.map new file mode 100644 index 00000000..144b06af --- /dev/null +++ b/dist/decorators/use-path-interceptors.decorator.js.map @@ -0,0 +1 @@ +{"version":3,"file":"use-path-interceptors.decorator.js","sourceRoot":"","sources":["../../src/decorators/use-path-interceptors.decorator.ts"],"names":[],"mappings":";;AAAA,oFAAgF;AAChF,wDAAiE;AAEjE,kDAAoF;AAEpF,SAAgB,mBAAmB,CAAC,GAAG,KAA+B;IACpE,OAAO,CAAC,MAAW,EAAE,GAAI,EAAE,UAAW,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,GAAa,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,CAAC,GAAa,EAAE,IAAY,EAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;QACnF,IAAI,YAAY,GAAU,EAAE,CAAC;QAE7B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YACjC,YAAY,GAAG,CAAC,sCAAuB,EAAE,uCAAwB,CAAC,CAAC;SACpE;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC/B,YAAY,GAAG,CAAC,sCAAuB,CAAC,CAAC;SAC1C;aAAM,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAC/B,YAAY,GAAG,CAAC,uCAAwB,CAAC,CAAC;SAC3C;QAED,IAAI,UAAU,EAAE;YACd,0CAAmB,CAAC,iCAAqB,EAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAC3E,OAAO,UAAU,CAAC;SACnB;QAED,0CAAmB,CAAC,iCAAqB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;QACjE,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAvBD,kDAuBC"} \ No newline at end of file diff --git a/dist/interceptors/restful-params.interceptor.d.ts b/dist/interceptors/restful-params.interceptor.d.ts index 8e50d854..c1c96619 100644 --- a/dist/interceptors/restful-params.interceptor.d.ts +++ b/dist/interceptors/restful-params.interceptor.d.ts @@ -1,2 +1,7 @@ -import { CrudOptions } from '../interfaces'; -export declare function RestfulParamsInterceptorFactory(crudOptions: CrudOptions): Function; +import { NestInterceptor, ExecutionContext, CallHandler } from '@nestjs/common'; +export declare class RestfulParamsInterceptor implements NestInterceptor { + intercept(context: ExecutionContext, next: CallHandler): Promise>; + private transform; + private validate; + private parseOptions; +} diff --git a/dist/interceptors/restful-params.interceptor.js b/dist/interceptors/restful-params.interceptor.js index 6899e72d..1e16e7d1 100644 --- a/dist/interceptors/restful-params.interceptor.js +++ b/dist/interceptors/restful-params.interceptor.js @@ -17,72 +17,67 @@ Object.defineProperty(exports, "__esModule", { value: true }); const common_1 = require("@nestjs/common"); const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); const constants_1 = require("../constants"); -let counter = 0; -function RestfulParamsInterceptorFactory(crudOptions) { - let RestfulParamsInterceptor = class RestfulParamsInterceptor { - intercept(context, next) { - return __awaiter(this, void 0, void 0, function* () { - const req = context.switchToHttp().getRequest(); - const { parsedParams, options } = yield this.transform(req.params); - req[constants_1.PARSED_PARAMS_REQUEST_KEY] = parsedParams; - req[constants_1.PARSED_OPTIONS_METADATA] = options; - return next.handle(); - }); - } - transform(params) { - return __awaiter(this, void 0, void 0, function* () { - const transformed = {}; - const keys = shared_utils_1.isObject(params) ? Object.keys(params) : []; - if (keys.length) { - transformed.parsedParams = keys.map((key) => ({ - field: key, - operator: 'eq', - value: this.validate(key, crudOptions.params[key], params[key]), - })); +const helpers_1 = require("../decorators/helpers"); +let RestfulParamsInterceptor = class RestfulParamsInterceptor { + intercept(context, next) { + return __awaiter(this, void 0, void 0, function* () { + const req = context.switchToHttp().getRequest(); + const controller = context.getClass(); + const crudOptions = helpers_1.getCrudOptionsMeta(controller); + const { parsedParams, options } = yield this.transform(req.params, crudOptions); + req[constants_1.PARSED_PARAMS_REQUEST_KEY] = parsedParams; + req[constants_1.PARSED_OPTIONS_METADATA] = options; + return next.handle(); + }); + } + transform(params, crudOptions) { + return __awaiter(this, void 0, void 0, function* () { + const transformed = {}; + const keys = shared_utils_1.isObject(params) ? Object.keys(params) : []; + if (keys.length) { + transformed.parsedParams = keys.map((key) => ({ + field: key, + operator: 'eq', + value: this.validate(key, crudOptions.params[key], params[key]), + })); + } + else { + transformed.parsedParams = []; + } + transformed.options = this.parseOptions(transformed.parsedParams, crudOptions); + return transformed; + }); + } + validate(key, type, value) { + switch (type) { + case 'number': + const isNumeric = 'string' === typeof value && !isNaN(parseFloat(value)) && isFinite(value); + if (!isNumeric) { + throw new common_1.BadRequestException(`Validation failed. Param '${key}': numeric string is expected`); } - else { - transformed.parsedParams = []; + return parseInt(value, 10); + case 'uuid': + const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + if (!uuid.test(value)) { + throw new common_1.BadRequestException(`Validation failed. Param '${key}': UUID string is expected`); } - transformed.options = this.parseOptions(transformed.parsedParams); - return transformed; - }); - } - validate(key, type, value) { - switch (type) { - case 'number': - const isNumeric = 'string' === typeof value && !isNaN(parseFloat(value)) && isFinite(value); - if (!isNumeric) { - throw new common_1.BadRequestException(`Validation failed. Param '${key}': numeric string is expected`); - } - return parseInt(value, 10); - case 'uuid': - const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/i; - if (!uuid.test(value)) { - throw new common_1.BadRequestException(`Validation failed. Param '${key}': UUID string is expected`); - } - return value; - default: - return value; - } + return value; + default: + return value; } - parseOptions(parsedParams) { - const options = Object.assign({}, crudOptions.options || {}); - const optionsFilter = options.filter || []; - const filter = [...optionsFilter, ...parsedParams]; - if (filter.length) { - options.filter = filter; - } - return Object.assign({}, crudOptions, { options }); + } + parseOptions(parsedParams, crudOptions) { + const options = Object.assign({}, crudOptions.options || {}); + const optionsFilter = options.filter || []; + const filter = [...optionsFilter, ...parsedParams]; + if (filter.length) { + options.filter = filter; } - }; - RestfulParamsInterceptor = __decorate([ - common_1.Injectable() - ], RestfulParamsInterceptor); - Object.defineProperty(RestfulParamsInterceptor, 'name', { - value: `RestfulParamsInterceptor${counter++}`, - writable: false, - }); - return RestfulParamsInterceptor; -} -exports.RestfulParamsInterceptorFactory = RestfulParamsInterceptorFactory; + return Object.assign({}, crudOptions, { options }); + } +}; +RestfulParamsInterceptor = __decorate([ + common_1.Injectable() +], RestfulParamsInterceptor); +exports.RestfulParamsInterceptor = RestfulParamsInterceptor; //# sourceMappingURL=restful-params.interceptor.js.map \ No newline at end of file diff --git a/dist/interceptors/restful-params.interceptor.js.map b/dist/interceptors/restful-params.interceptor.js.map index 6689e58c..9db1f7bb 100644 --- a/dist/interceptors/restful-params.interceptor.js.map +++ b/dist/interceptors/restful-params.interceptor.js.map @@ -1 +1 @@ -{"version":3,"file":"restful-params.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/restful-params.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAMwB;AACxB,oEAA6D;AAG7D,4CAAkF;AAElF,IAAI,OAAO,GAAG,CAAC,CAAC;AAEhB,SAAgB,+BAA+B,CAAC,WAAwB;IAEtE,IAAM,wBAAwB,GAA9B,MAAM,wBAAwB;QACtB,SAAS,CAAC,OAAyB,EAAE,IAAiB;;gBAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;gBAEhD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAEnE,GAAG,CAAC,qCAAyB,CAAC,GAAG,YAAY,CAAC;gBAC9C,GAAG,CAAC,mCAAuB,CAAC,GAAG,OAAO,CAAC;gBAEvC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACvB,CAAC;SAAA;QAEa,SAAS,CACrB,MAAqB;;gBAErB,MAAM,WAAW,GAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,uBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAEzD,IAAI,IAAI,CAAC,MAAM,EAAE;oBAEf,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CACjC,CAAC,GAAG,EAAE,EAAE,CACN,CAAC;wBACC,KAAK,EAAE,GAAG;wBACV,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;qBAC1C,CAAA,CAC1B,CAAC;iBACH;qBAAM;oBACL,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;iBAC/B;gBAGD,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBAElE,OAAO,WAAW,CAAC;YACrB,CAAC;SAAA;QAQO,QAAQ,CAAC,GAAW,EAAE,IAAkC,EAAE,KAAa;YAC7E,QAAQ,IAAI,EAAE;gBAEZ,KAAK,QAAQ;oBACX,MAAM,SAAS,GACb,QAAQ,KAAK,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAY,CAAC,CAAC;oBAEnF,IAAI,CAAC,SAAS,EAAE;wBACd,MAAM,IAAI,4BAAmB,CAC3B,6BAA6B,GAAG,+BAA+B,CAChE,CAAC;qBACH;oBAED,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAG7B,KAAK,MAAM;oBACT,MAAM,IAAI,GAAG,sEAAsE,CAAC;oBAEpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;wBACrB,MAAM,IAAI,4BAAmB,CAC3B,6BAA6B,GAAG,4BAA4B,CAC7D,CAAC;qBACH;oBAED,OAAO,KAAK,CAAC;gBAGf;oBACE,OAAO,KAAK,CAAC;aAChB;QACH,CAAC;QAMO,YAAY,CAAC,YAAiC;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE,CAAoB,CAAC;YAChF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;YAEnD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;aACzB;YAED,yBAAY,WAAW,IAAE,OAAO,IAAG;QACrC,CAAC;KACF,CAAA;IA5FK,wBAAwB;QAD7B,mBAAU,EAAE;OACP,wBAAwB,CA4F7B;IAGD,MAAM,CAAC,cAAc,CAAC,wBAAwB,EAAE,MAAM,EAAE;QACtD,KAAK,EAAE,2BAA2B,OAAO,EAAE,EAAE;QAC7C,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAvGD,0EAuGC"} \ No newline at end of file +{"version":3,"file":"restful-params.interceptor.js","sourceRoot":"","sources":["../../src/interceptors/restful-params.interceptor.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/package.json b/dist/package.json index 8d8b3c3b..d0465e51 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,6 +1,6 @@ { "name": "@nestjsx/crud", - "version": "3.1.0", + "version": "3.2.0", "description": "NestJs CRUD for RESTful APIs", "main": "index.js", "types": "index.d.ts", @@ -25,5 +25,10 @@ "name": "Michael Yali", "email": "mihon4ik@gmail.com" }, - "license": "MIT" + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^6", + "@nestjs/core": "^6", + "@nestjs/typeorm": "^6" + } } diff --git a/dist/typeorm/repository-service.class.d.ts b/dist/typeorm/repository-service.class.d.ts index 70676a08..d1156514 100644 --- a/dist/typeorm/repository-service.class.d.ts +++ b/dist/typeorm/repository-service.class.d.ts @@ -8,6 +8,8 @@ export declare class RepositoryService extends RestfulService { private entityColumnsHash; private entityRelationsHash; constructor(repo: Repository); + readonly findOne: Repository['findOne']; + readonly find: Repository['find']; private readonly entityType; private readonly alias; decidePagination(query: RequestParamsParsed, mergedOptions: RestfulOptions): boolean; diff --git a/dist/typeorm/repository-service.class.js b/dist/typeorm/repository-service.class.js index 1c910d52..363bff8e 100644 --- a/dist/typeorm/repository-service.class.js +++ b/dist/typeorm/repository-service.class.js @@ -23,6 +23,12 @@ class RepositoryService extends classes_1.RestfulService { this.onInitMapEntityColumns(); this.onInitMapRelations(); } + get findOne() { + return this.repo.findOne.bind(this.repo); + } + get find() { + return this.repo.find.bind(this.repo); + } get entityType() { return this.repo.target; } diff --git a/dist/typeorm/repository-service.class.js.map b/dist/typeorm/repository-service.class.js.map index 90bcef85..b38777e2 100644 --- a/dist/typeorm/repository-service.class.js.map +++ b/dist/typeorm/repository-service.class.js.map @@ -1 +1 @@ -{"version":3,"file":"repository-service.class.js","sourceRoot":"","sources":["../../src/typeorm/repository-service.class.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"repository-service.class.js","sourceRoot":"","sources":["../../src/typeorm/repository-service.class.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/utils.js b/dist/utils.js index 61edb8c7..67101d6b 100644 --- a/dist/utils.js +++ b/dist/utils.js @@ -29,5 +29,6 @@ exports.mockValidatorDecorator = (name) => classValidatorPkg && classValidatorPk : (...args) => (target, key) => { }; exports.mockTransformerDecorator = (name) => classTransformerPkg && classTransformerPkg[name] ? classTransformerPkg[name] - : (...args) => (target, key) => { }; + : + (...args) => (target, key) => { }; //# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/dist/utils.js.map b/dist/utils.js.map index f469b47a..a4dba405 100644 --- a/dist/utils.js.map +++ b/dist/utils.js.map @@ -1 +1 @@ -{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAAA,IAAI,iBAAsB,CAAC;AAC3B,IAAI,mBAAwB,CAAC;AAC7B,IAAI,UAAe,CAAC;AACpB,IAAI,UAAe,CAAC;AAEpB,IAAI;IACF,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,UAAU,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACzD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,UAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;CACxD;AAAC,OAAO,KAAK,EAAE,GAAE;AAEL,QAAA,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAA,YAAY,GAAG,CAAC,CAAC,iBAAiB,CAAC;AACnC,QAAA,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;AAE1B,QAAA,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9D,QAAA,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE,CACrD,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC;IAC1C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACzB,CAAC,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,CAAC;AACjC,QAAA,wBAAwB,GAAG,CAAC,IAAY,EAAE,EAAE,CACvD,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC;IAC9C,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC3B,CAAC,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAAA,IAAI,iBAAsB,CAAC;AAC3B,IAAI,mBAAwB,CAAC;AAC7B,IAAI,UAAe,CAAC;AACpB,IAAI,UAAe,CAAC;AAEpB,IAAI;IACF,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,UAAU,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;CACzD;AAAC,OAAO,KAAK,EAAE,GAAE;AAClB,IAAI;IACF,UAAU,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;CACxD;AAAC,OAAO,KAAK,EAAE,GAAE;AAGL,QAAA,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACzC,QAAA,YAAY,GAAG,CAAC,CAAC,iBAAiB,CAAC;AACnC,QAAA,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;AAE1B,QAAA,WAAW,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC9D,QAAA,sBAAsB,GAAG,CAAC,IAAY,EAAE,EAAE,CACrD,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC;IAC1C,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACzB,CAAC,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,CAAC;AACjC,QAAA,wBAAwB,GAAG,CAAC,IAAY,EAAE,EAAE,CACvD,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,CAAC;IAC9C,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC;IAC3B,CAAC;QACC,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,GAAE,CAAC,CAAC"} \ No newline at end of file diff --git a/integration/typeorm/e2e/index.ts b/integration/typeorm/e2e/index.ts index d50dc650..3b362c83 100644 --- a/integration/typeorm/e2e/index.ts +++ b/integration/typeorm/e2e/index.ts @@ -2,4 +2,5 @@ export * from './user.entity'; export * from './user-profile.entity'; export * from './company.entity'; export * from './task.entity'; +export * from './project.entity'; export * from './orm.config'; diff --git a/integration/typeorm/src/companies/companies.controller.ts b/integration/typeorm/src/companies/companies.controller.ts index 877d0601..8e9b1a2c 100644 --- a/integration/typeorm/src/companies/companies.controller.ts +++ b/integration/typeorm/src/companies/companies.controller.ts @@ -1,14 +1,17 @@ -import { Controller } from '@nestjs/common'; +import { Controller, Get } from '@nestjs/common'; import { ApiUseTags } from '@nestjs/swagger'; import { Crud, CrudController, + CrudOptions, Override, ParsedQuery, ParsedOptions, ParsedParams, ParsedBody, EntitiesBulk, + UsePathInterceptors, + RestfulParamsDto, } from '@nestjsx/crud'; import { Company } from './company.entity'; @@ -51,4 +54,14 @@ export class CompaniesController { async createMany(@ParsedParams() params, @ParsedBody() body: EntitiesBulk) { return this.base.createManyBase(params, body); } + + @Get('/custom/get-all') + @UsePathInterceptors() + async customRoute( + @ParsedQuery() query: RestfulParamsDto, + @ParsedParams() params, + @ParsedOptions() options: CrudOptions, + ) { + return { query, params, options }; + } } diff --git a/package-lock.json b/package-lock.json index 220cf92d..134c8b1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@nestjsx/crud", - "version": "3.0.0-rc.1", + "version": "3.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -528,7 +528,7 @@ }, "@types/json5": { "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "resolved": "http://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" }, "@types/node": { @@ -727,13 +727,13 @@ }, "array-equal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, "array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-unique": { @@ -828,7 +828,7 @@ }, "axios": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz", + "resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz", "integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=", "requires": { "follow-redirects": "^1.3.0", @@ -854,7 +854,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { @@ -873,7 +873,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { @@ -1673,7 +1673,7 @@ }, "d": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { "es5-ext": "^0.10.9" @@ -2402,7 +2402,7 @@ }, "finalhandler": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", @@ -2523,7 +2523,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -2578,7 +2579,8 @@ "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -2731,12 +2733,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2755,6 +2759,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -2848,6 +2853,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -2933,7 +2939,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -2989,6 +2996,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3032,12 +3040,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -3060,7 +3070,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, "get-value": { @@ -3134,7 +3144,7 @@ }, "got": { "version": "6.7.1", - "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { @@ -3279,7 +3289,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { "depd": "~1.1.2", @@ -3382,7 +3392,7 @@ }, "is-accessor-descriptor": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "resolved": "http://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { @@ -3437,7 +3447,7 @@ }, "is-data-descriptor": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { @@ -3550,7 +3560,7 @@ }, "is-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, @@ -4861,7 +4871,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "mem": { @@ -4987,7 +4997,7 @@ }, "mkdirp": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "requires": { "minimist": "0.0.8" @@ -5075,7 +5085,7 @@ }, "next-tick": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" }, "nice-try": { @@ -5468,7 +5478,7 @@ }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { @@ -6100,7 +6110,7 @@ }, "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { @@ -6540,7 +6550,7 @@ }, "sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "http://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sshpk": { @@ -6652,7 +6662,7 @@ }, "strip-eof": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-json-comments": { @@ -6748,7 +6758,7 @@ }, "through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" }, "timed-out": { @@ -7393,7 +7403,7 @@ }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { "string-width": "^1.0.1", @@ -7420,7 +7430,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" @@ -7476,7 +7486,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xtend": { @@ -7511,7 +7521,7 @@ }, "chalk": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { "ansi-styles": "^2.2.1", @@ -7523,7 +7533,7 @@ }, "strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { "ansi-regex": "^2.0.0" diff --git a/package.json b/package.json index 19fa7fb4..034f6304 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@nestjsx/crud", - "version": "3.1.0", + "version": "3.2.0", "description": "Nest CRUD for RESTful APIs", "scripts": { "docker:up": "docker-compose up -d", @@ -21,6 +21,11 @@ "prebuild": "npm run clean", "postbuild": "npm run clean:typeorm && npm run update:typeorm" }, + "peerDependencies": { + "@nestjs/common": "^6", + "@nestjs/core": "^6", + "@nestjs/typeorm": "^6" + }, "dependencies": { "@nestjs/common": "^6.0.2", "@nestjs/core": "^6.0.2", diff --git a/src/classes/restful-service.class.ts b/src/classes/restful-service.class.ts index 53ea4953..a2b19c3d 100644 --- a/src/classes/restful-service.class.ts +++ b/src/classes/restful-service.class.ts @@ -5,8 +5,7 @@ import { GetManyDefaultResponse, RequestParamsParsed, RestfulOptions } from '../ export abstract class RestfulService { protected abstract options: RestfulOptions; - constructor() { - } + constructor() {} /** * Wrap page into page-info @@ -16,13 +15,22 @@ export abstract class RestfulService { * @param limit * @param offset */ - public createPageInfo(data: T[], total: number, limit: number, offset: number): GetManyDefaultResponse { + public createPageInfo( + data: T[], + total: number, + limit: number, + offset: number, + ): GetManyDefaultResponse { return { data, count: data.length, total, page: Math.floor(offset / limit) + 1, - pageCount: limit && total ? Math.round(total / limit) : undefined, + pageCount: + limit && total + ? Math.round(total / limit) + : /* istanbul ignore next line */ + undefined, }; } diff --git a/src/constants.ts b/src/constants.ts index affc5715..8911a6d0 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -7,6 +7,7 @@ export const PARSED_QUERY_REQUEST_KEY = 'NESTJSX_PARSED_QUERY_REQUEST_KEY'; export const PARSED_PARAMS_REQUEST_KEY = 'NESTJSX_PARSED_PARAMS_REQUEST_KEY'; export const PARSED_OPTIONS_METADATA = 'NESTJSX_PARSED_OPTIONS_METADATA'; export const PARSED_BODY_METADATA = 'NESTJSX_PARSED_BODY_METADATA'; +export const CRUD_OPTIONS_METADATA = 'NESTJSX_CRUD_OPTIONS_METADATA'; export const CREATE_UPDATE: { groups: string[] } = { groups: [CrudValidate.CREATE, CrudValidate.UPDATE], diff --git a/src/decorators/crud.decorator.ts b/src/decorators/crud.decorator.ts index d841062d..acc594ce 100644 --- a/src/decorators/crud.decorator.ts +++ b/src/decorators/crud.decorator.ts @@ -3,7 +3,7 @@ import { RouteParamtypes } from '@nestjs/common/enums/route-paramtypes.enum'; import { RestfulParamsDto } from '../dto'; import { CrudActions, CrudValidate } from '../enums'; -import { RestfulQueryInterceptor, RestfulParamsInterceptorFactory } from '../interceptors'; +import { RestfulQueryInterceptor, RestfulParamsInterceptor } from '../interceptors'; import { CrudOptions, FilterParamParsed, EntitiesBulk } from '../interfaces'; import { BaseRouteName } from '../types'; import { @@ -81,7 +81,7 @@ const baseRoutesInit = { setParamTypes([RestfulParamsDto, Object], prototype, name); setInterceptors( [ - RestfulParamsInterceptorFactory(crudOptions), + RestfulParamsInterceptor, RestfulQueryInterceptor, ...getRouteInterceptors(crudOptions.routes.getManyBase), ], @@ -118,7 +118,7 @@ const baseRoutesInit = { setParamTypes([RestfulParamsDto, Object], prototype, name); setInterceptors( [ - RestfulParamsInterceptorFactory(crudOptions), + RestfulParamsInterceptor, RestfulQueryInterceptor, ...getRouteInterceptors(crudOptions.routes.getOneBase), ], @@ -153,10 +153,7 @@ const baseRoutesInit = { ); setParamTypes([Array, dto], prototype, name); setInterceptors( - [ - RestfulParamsInterceptorFactory(crudOptions), - ...getRouteInterceptors(crudOptions.routes.createOneBase), - ], + [RestfulParamsInterceptor, ...getRouteInterceptors(crudOptions.routes.createOneBase)], prototype[name], ); setAction(CrudActions.CreateOne, prototype[name]); @@ -187,6 +184,8 @@ const baseRoutesInit = { @Type((t) => dto) bulk: any[]; } + /* istanbul ignore next line */ + const BultDtoType = hasValidator ? BulkDto : {}; setRouteArgs( { @@ -198,12 +197,9 @@ const baseRoutesInit = { target, name, ); - setParamTypes([Array, hasValidator ? BulkDto : {}], prototype, name); + setParamTypes([Array, BultDtoType], prototype, name); setInterceptors( - [ - RestfulParamsInterceptorFactory(crudOptions), - ...getRouteInterceptors(crudOptions.routes.createManyBase), - ], + [RestfulParamsInterceptor, ...getRouteInterceptors(crudOptions.routes.createManyBase)], prototype[name], ); setAction(CrudActions.CreateMany, prototype[name]); @@ -234,10 +230,7 @@ const baseRoutesInit = { ); setParamTypes([Array, dto], prototype, name); setInterceptors( - [ - RestfulParamsInterceptorFactory(crudOptions), - ...getRouteInterceptors(crudOptions.routes.updateOneBase), - ], + [RestfulParamsInterceptor, ...getRouteInterceptors(crudOptions.routes.updateOneBase)], prototype[name], ); setAction(CrudActions.UpdateOne, prototype[name]); @@ -265,10 +258,7 @@ const baseRoutesInit = { ); setParamTypes([Array], prototype, name); setInterceptors( - [ - RestfulParamsInterceptorFactory(crudOptions), - ...getRouteInterceptors(crudOptions.routes.deleteOneBase), - ], + [RestfulParamsInterceptor, ...getRouteInterceptors(crudOptions.routes.deleteOneBase)], prototype[name], ); setAction(CrudActions.DeleteOne, prototype[name]); @@ -333,7 +323,7 @@ export const Crud = (dto: any, crudOptions: CrudOptions = {}) => (target: object const path = getControllerPath(target); // set default crud options - setDefaultCrudOptions(crudOptions); + setDefaultCrudOptions(crudOptions, target); // get routes slug const slug = getRoutesSlugName(crudOptions, path); @@ -355,17 +345,17 @@ export const Crud = (dto: any, crudOptions: CrudOptions = {}) => (target: object // method override Object.getOwnPropertyNames(prototype).forEach((name) => { - const overrided = getOverrideMetadata(prototype[name]); - const route = baseRoutes[overrided]; + const override = getOverrideMetadata(prototype[name]); + const route = baseRoutes[override]; - if (overrided && route && route.enable) { + if (override && route && route.enable) { // get base function metadata const interceptors = getInterceptors(prototype[name]) || []; - const baseInterceptors = getInterceptors(prototype[overrided]) || []; - const baseAction = getAction(prototype[overrided]); - const baseSwaggerParams = getSwaggerParams(prototype[overrided]); - const baseSwaggerOkResponse = getSwaggeOkResponse(prototype[overrided]); - const baseSwaggerOperation = getSwaggerOperation(prototype[overrided]); + const baseInterceptors = getInterceptors(prototype[override]); + const baseAction = getAction(prototype[override]); + const baseSwaggerParams = getSwaggerParams(prototype[override]); + const baseSwaggerOkResponse = getSwaggeOkResponse(prototype[override]); + const baseSwaggerOperation = getSwaggerOperation(prototype[override]); // set metadata setInterceptors([...baseInterceptors, ...interceptors], prototype[name]); @@ -375,7 +365,7 @@ export const Crud = (dto: any, crudOptions: CrudOptions = {}) => (target: object setSwaggerOperationMeta(baseSwaggerOperation, prototype[name]); // override @ParsedBody() decorator is needed - overrideParsedBody(target, overrided, name); + overrideParsedBody(target, override, name); // set route setRoute(route.path, route.method, prototype[name]); diff --git a/src/decorators/helpers.ts b/src/decorators/helpers.ts index eef55132..29aa857f 100644 --- a/src/decorators/helpers.ts +++ b/src/decorators/helpers.ts @@ -13,7 +13,12 @@ import { import { CrudActions, CrudValidate } from '../enums'; import { CrudOptions, RoutesOptions } from '../interfaces'; import { BaseRouteName } from '../types'; -import { ACTION_NAME_METADATA, OVERRIDE_METHOD_METADATA, PARSED_BODY_METADATA } from '../constants'; +import { + ACTION_NAME_METADATA, + OVERRIDE_METHOD_METADATA, + PARSED_BODY_METADATA, + CRUD_OPTIONS_METADATA, +} from '../constants'; import { swagger, hasValidator, hasTypeorm } from '../utils'; export function setRoute(path: string, method: RequestMethod, func: Function) { @@ -41,6 +46,10 @@ export function setParsedBody(meta, func: Function) { Reflect.defineMetadata(PARSED_BODY_METADATA, meta, func); } +export function setCrudOptionsMeta(crudOptions: CrudOptions, target: any) { + Reflect.defineMetadata(CRUD_OPTIONS_METADATA, crudOptions, target); +} + export function setSwaggerOkResponseMeta(meta: any, func: Function) { if (swagger) { /* istanbul ignore next line */ @@ -79,7 +88,7 @@ export function setSwaggerOkResponse(func: Function, dto: any, isArray?: boolean } } -export function setSwaggerOperation(func: Function, summary: string = '') { +export function setSwaggerOperation(func: Function, summary: string) { if (swagger) { /* istanbul ignore next line */ const metadata = getSwaggerOperation(func); @@ -201,7 +210,7 @@ export function setSwaggerQueryGetMany(func: Function, name: string) { }, { name: 'per_page', - description: `Alias for limit`, + description: `

Alias for limit

`, required: false, in: 'query', type: Number, @@ -222,6 +231,7 @@ export function setSwaggerQueryGetMany(func: Function, name: string) { export function createParamMetadata( paramtype: RouteParamtypes, index: number, + /* istanbul ignore next line */ pipes: any[] = [], data = undefined, ): any { @@ -267,10 +277,12 @@ export function getParsedBody(func: Function) { } export function getParamTypes(prototype: any, name: string) { + /* istanbul ignore next line */ return Reflect.getMetadata(PARAMTYPES_METADATA, prototype, name) || []; } export function getRouteArgs(target: object, name: string) { + /* istanbul ignore next line */ return Reflect.getMetadata(ROUTE_ARGS_METADATA, target, name) || {}; } @@ -299,6 +311,10 @@ export function getSwaggerOperation(func: Function): any { } } +export function getCrudOptionsMeta(target: any): CrudOptions { + return Reflect.getMetadata(CRUD_OPTIONS_METADATA, target); +} + export function setValidationPipe(crudOptions: CrudOptions, group: CrudValidate) { const options = crudOptions.validation || {}; @@ -308,7 +324,8 @@ export function setValidationPipe(crudOptions: CrudOptions, group: CrudValidate) groups: [group], transform: false, }) - : undefined; + : /* istanbul ignore next line */ + undefined; } export function enableRoute(name: BaseRouteName, crudOptions: CrudOptions) { @@ -323,7 +340,7 @@ export function enableRoute(name: BaseRouteName, crudOptions: CrudOptions) { return true; } -export function setDefaultCrudOptions(crudOptions: CrudOptions) { +export function setDefaultCrudOptions(crudOptions: CrudOptions, target: any) { const check = (obj) => isNil(obj) || !isObject(obj) || !Object.keys(obj).length; // set default `id` numeric slug @@ -359,6 +376,9 @@ export function setDefaultCrudOptions(crudOptions: CrudOptions) { if (check(crudOptions.routes.deleteOneBase)) { crudOptions.routes.deleteOneBase = { returnDeleted: false, interceptors: [] }; } + + // set metadata + setCrudOptionsMeta(crudOptions, target); } export function getRoutesSlugName(crudOptions: CrudOptions, path: string): string { @@ -409,6 +429,7 @@ export function overrideParsedBody(target: any, baseName: BaseRouteName, name: s const paramTypes = getParamTypes(prototype, name) as any[]; const metatype = paramTypes[parsedBody.index]; const types = [String, Boolean, Number, Array, Object]; + /* istanbul ignore next line */ const toCopy = types.some((t) => metatype === t) || isNil(metatype); if (toCopy) { diff --git a/src/decorators/index.ts b/src/decorators/index.ts index 2fee9ecb..6cf880a5 100644 --- a/src/decorators/index.ts +++ b/src/decorators/index.ts @@ -4,3 +4,4 @@ export * from './parsed-params.decorator'; export * from './parsed-query.decorator'; export * from './parsed-options.decorator'; export * from './parsed-body.decorator'; +export * from './use-path-interceptors.decorator'; diff --git a/src/decorators/use-path-interceptors.decorator.ts b/src/decorators/use-path-interceptors.decorator.ts new file mode 100644 index 00000000..72aa2b13 --- /dev/null +++ b/src/decorators/use-path-interceptors.decorator.ts @@ -0,0 +1,29 @@ +import { extendArrayMetadata } from '@nestjs/common/utils/extend-metadata.util'; +import { INTERCEPTORS_METADATA } from '@nestjs/common/constants'; + +import { RestfulQueryInterceptor, RestfulParamsInterceptor } from '../interceptors'; + +export function UsePathInterceptors(...names: Array<'query' | 'param'>) { + return (target: any, key?, descriptor?) => { + const all = ['query', 'param']; + const every = (arr: string[]): boolean => all.every((n) => arr.some((name) => name === n)); + const some = (arr: string[], name: string): boolean => arr.some((n) => name === n); + let interceptors: any[] = []; + + if (!names.length || every(names)) { + interceptors = [RestfulQueryInterceptor, RestfulParamsInterceptor]; + } else if (some(names, 'query')) { + interceptors = [RestfulQueryInterceptor]; + } else if (some(names, 'param')) { + interceptors = [RestfulParamsInterceptor]; + } + + if (descriptor) { + extendArrayMetadata(INTERCEPTORS_METADATA, interceptors, descriptor.value); + return descriptor; + } + + extendArrayMetadata(INTERCEPTORS_METADATA, interceptors, target); + return target; + }; +} diff --git a/src/interceptors/restful-params.interceptor.ts b/src/interceptors/restful-params.interceptor.ts index f38dbee2..bda7247c 100644 --- a/src/interceptors/restful-params.interceptor.ts +++ b/src/interceptors/restful-params.interceptor.ts @@ -9,110 +9,102 @@ import { isObject } from '@nestjs/common/utils/shared.utils'; import { CrudOptions, FilterParamParsed, ObjectLiteral, RestfulOptions } from '../interfaces'; import { PARSED_OPTIONS_METADATA, PARSED_PARAMS_REQUEST_KEY } from '../constants'; +import { getCrudOptionsMeta } from '../decorators/helpers'; -let counter = 0; +@Injectable() +export class RestfulParamsInterceptor implements NestInterceptor { + async intercept(context: ExecutionContext, next: CallHandler) { + const req = context.switchToHttp().getRequest(); + const controller = context.getClass(); + const crudOptions = getCrudOptionsMeta(controller); -export function RestfulParamsInterceptorFactory(crudOptions: CrudOptions): Function { - @Injectable() - class RestfulParamsInterceptor implements NestInterceptor { - async intercept(context: ExecutionContext, next: CallHandler) { - const req = context.switchToHttp().getRequest(); + const { parsedParams, options } = await this.transform(req.params, crudOptions); - const { parsedParams, options } = await this.transform(req.params); + req[PARSED_PARAMS_REQUEST_KEY] = parsedParams; + req[PARSED_OPTIONS_METADATA] = options; - req[PARSED_PARAMS_REQUEST_KEY] = parsedParams; - req[PARSED_OPTIONS_METADATA] = options; - - return next.handle(); - } - - private async transform( - params: ObjectLiteral, - ): Promise<{ options: RestfulOptions; parsedParams: FilterParamParsed }> { - const transformed: any = {}; - const keys = isObject(params) ? Object.keys(params) : []; - - if (keys.length) { - // parse params - transformed.parsedParams = keys.map( - (key) => - ({ - field: key, - operator: 'eq', - value: this.validate(key, crudOptions.params[key], params[key]), - } as FilterParamParsed), - ); - } else { - transformed.parsedParams = []; - } - - // parseOptions - transformed.options = this.parseOptions(transformed.parsedParams); - - return transformed; - } + return next.handle(); + } - /** - * Validate params - * @param key - * @param type - * @param value - */ - private validate(key: string, type: 'number' | 'string' | 'uuid', value: string): any { - switch (type) { - // is number - case 'number': - const isNumeric = - 'string' === typeof value && !isNaN(parseFloat(value)) && isFinite(value as any); - - if (!isNumeric) { - throw new BadRequestException( - `Validation failed. Param '${key}': numeric string is expected`, - ); - } - - return parseInt(value, 10); - - // is UUID - case 'uuid': - const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/i; - - if (!uuid.test(value)) { - throw new BadRequestException( - `Validation failed. Param '${key}': UUID string is expected`, - ); - } - - return value; - - // is string - default: - return value; - } + private async transform( + params: ObjectLiteral, + crudOptions: CrudOptions, + ): Promise<{ options: RestfulOptions; parsedParams: FilterParamParsed }> { + const transformed: any = {}; + const keys = isObject(params) ? Object.keys(params) : []; + + if (keys.length) { + // parse params + transformed.parsedParams = keys.map( + (key) => + ({ + field: key, + operator: 'eq', + value: this.validate(key, crudOptions.params[key], params[key]), + } as FilterParamParsed), + ); + } else { + transformed.parsedParams = []; } - /** - * Parse options - * @param parsedParams - */ - private parseOptions(parsedParams: FilterParamParsed[]): CrudOptions { - const options = Object.assign({}, crudOptions.options || {}) as RestfulOptions; - const optionsFilter = options.filter || []; - const filter = [...optionsFilter, ...parsedParams]; + // parseOptions + transformed.options = this.parseOptions(transformed.parsedParams, crudOptions); - if (filter.length) { - options.filter = filter; - } + return transformed; + } - return { ...crudOptions, options }; + /** + * Validate params + * @param key + * @param type + * @param value + */ + private validate(key: string, type: 'number' | 'string' | 'uuid', value: string): any { + switch (type) { + // is number + case 'number': + const isNumeric = + 'string' === typeof value && !isNaN(parseFloat(value)) && isFinite(value as any); + + if (!isNumeric) { + throw new BadRequestException( + `Validation failed. Param '${key}': numeric string is expected`, + ); + } + + return parseInt(value, 10); + + // is UUID + case 'uuid': + const uuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + + if (!uuid.test(value)) { + throw new BadRequestException( + `Validation failed. Param '${key}': UUID string is expected`, + ); + } + + return value; + + // is string + default: + return value; } } - // MUST change class name see #25 - Object.defineProperty(RestfulParamsInterceptor, 'name', { - value: `RestfulParamsInterceptor${counter++}`, - writable: false, - }); + /** + * Parse options + * @param parsedParams + */ + private parseOptions(parsedParams: FilterParamParsed[], crudOptions: CrudOptions): CrudOptions { + const options = Object.assign({}, crudOptions.options || {}) as RestfulOptions; + const optionsFilter = options.filter || []; + const filter = [...optionsFilter, ...parsedParams]; + + if (filter.length) { + options.filter = filter; + } - return RestfulParamsInterceptor; + return { ...crudOptions, options }; + } } diff --git a/src/typeorm/repository-service.class.ts b/src/typeorm/repository-service.class.ts index 819c3402..36e2fa63 100644 --- a/src/typeorm/repository-service.class.ts +++ b/src/typeorm/repository-service.class.ts @@ -1,4 +1,4 @@ -import { Brackets, DeepPartial, Repository, SelectQueryBuilder } from 'typeorm'; +import { Brackets, DeepPartial, Repository, SelectQueryBuilder, FindManyOptions } from 'typeorm'; import { isObject } from '@nestjs/common/utils/shared.utils'; import { plainToClass } from 'class-transformer'; import { ClassType } from 'class-transformer/ClassTransformer'; @@ -32,6 +32,14 @@ export class RepositoryService extends RestfulService { this.onInitMapRelations(); } + public get findOne(): Repository['findOne'] { + return this.repo.findOne.bind(this.repo); + } + + public get find(): Repository['find'] { + return this.repo.find.bind(this.repo); + } + private get entityType(): ClassType { return this.repo.target as ClassType; } diff --git a/src/utils.ts b/src/utils.ts index 87029161..3b54f7c1 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -16,6 +16,7 @@ try { swaggerPkg = require('@nestjs/swagger/dist/constants'); } catch (error) {} +/* istanbul ignore next line */ export const swagger = swaggerPkg ? swaggerPkg : null; export const hasValidator = !!classValidatorPkg; export const hasTypeorm = !!typeormPkg; @@ -28,4 +29,5 @@ export const mockValidatorDecorator = (name: string) => export const mockTransformerDecorator = (name: string) => classTransformerPkg && classTransformerPkg[name] ? classTransformerPkg[name] - : (...args: any[]) => (target, key) => {}; + : /* istanbul ignore next line */ + (...args: any[]) => (target, key) => {}; diff --git a/test/typeorm/custom-route.spec.ts b/test/typeorm/custom-route.spec.ts new file mode 100644 index 00000000..2f2b13da --- /dev/null +++ b/test/typeorm/custom-route.spec.ts @@ -0,0 +1,238 @@ +import * as request from 'supertest'; +import { Test } from '@nestjs/testing'; +import { TypeOrmModule, InjectRepository } from '@nestjs/typeorm'; +import { INestApplication, Injectable, Controller, Get } from '@nestjs/common'; + +import { + UserProfile, + User, + Company, + Task, + Project, + ormConfig, +} from '../../integration/typeorm/e2e'; +import { + Crud, + ParsedQuery, + ParsedParams, + RestfulParamsDto, + UsePathInterceptors, + ParsedOptions, + RestfulOptions, +} from '../../src'; +import { RepositoryService } from '../../src/typeorm'; + +@Injectable() +class CompaniesService extends RepositoryService { + protected options: RestfulOptions = {}; + + constructor(@InjectRepository(Company) public repo) { + super(repo); + } +} + +@Crud(Company, { + params: { + id: 'uuid', + }, +}) +@UsePathInterceptors() +@Controller('custom2') +class Custom2Controller { + constructor(public service: CompaniesService) {} + + @Get('with/all') + customWithAll( + @ParsedQuery() query: RestfulParamsDto, + @ParsedParams() params, + @ParsedOptions() options, + ) { + return { query, params, options }; + } + + @Get('repo/find-one') + async customFindOne() { + return this.service.findOne(1); + } + + @Get('repo/find') + async customFind() { + return this.service.find({ id: 1 }); + } +} + +@Crud(Company) +@Controller('custom1') +class Custom1Controller { + constructor(public service: CompaniesService) {} + + @UsePathInterceptors('query') + @Get('with/query') + customWithQuery(@ParsedQuery() query: RestfulParamsDto) { + return query; + } + + @UsePathInterceptors('param') + @Get('with/param') + customWithParam(@ParsedParams() params) { + return params; + } + + @UsePathInterceptors() + @Get('with/all1') + customWithAll1( + @ParsedQuery() query: RestfulParamsDto, + @ParsedParams() params, + @ParsedOptions() options, + ) { + return { query, params, options }; + } + + @UsePathInterceptors('param', 'query') + @Get('with/all2') + customWithAll2( + @ParsedQuery() query: RestfulParamsDto, + @ParsedParams() params, + @ParsedOptions() options, + ) { + return { query, params, options }; + } +} + +describe('Custom routes with @UsePathInterceptors()', () => { + let app: INestApplication; + let server: any; + + beforeAll(async () => { + const fixture = await Test.createTestingModule({ + imports: [ + TypeOrmModule.forRoot(ormConfig), + TypeOrmModule.forFeature([UserProfile, User, Task, Project, Company]), + ], + providers: [CompaniesService], + exports: [CompaniesService], + controllers: [Custom1Controller, Custom2Controller], + }).compile(); + + app = fixture.createNestApplication(); + + await app.init(); + server = app.getHttpServer(); + }); + + afterAll(async () => { + app.close(); + }); + + describe('get custom route with query', () => { + it('should return status 200', () => { + return request(server) + .get('/custom1/with/query') + .query({ + fields: 'name', + filter: 'name||eq||foo', + join: 'users', + }) + .expect(200) + .expect((res) => { + expect(res.body).toHaveProperty('fields'); + expect(res.body).toHaveProperty('filter'); + expect(res.body).toHaveProperty('join'); + }); + }); + }); + + describe('get custom route with param', () => { + it('should return status 200', () => { + return request(server) + .get('/custom1/with/param') + .expect(200); + }); + }); + + describe('get custom route with all', () => { + const test = (path: string) => + request(server) + .get(path) + .query({ + fields: 'name', + filter: 'name||eq||foo', + join: 'users', + }) + .expect(200) + .expect((res) => { + expect(res.body).toHaveProperty('query.fields'); + expect(res.body).toHaveProperty('query.filter'); + expect(res.body).toHaveProperty('query.join'); + expect(res.body).toHaveProperty('options'); + expect(res.body).toHaveProperty('params'); + }); + + it('should return status 200, 1/3', () => { + return test('/custom1/with/all1'); + }); + + it('should return status 200, 2/3', () => { + return test('/custom1/with/all2'); + }); + + it('should return status 200, 3/3', () => { + return test('/custom2/with/all'); + }); + }); + + describe('get custom service findOne', () => { + it('should return status 200', () => { + return request(server) + .get('/custom2/repo/find-one') + .expect(200) + .expect((res) => { + expect(res.body).toHaveProperty('id'); + expect(res.body.id).toBe(1); + }); + }); + }); + + describe('get custom service find', () => { + it('should return status 200', () => { + return request(server) + .get('/custom2/repo/find') + .expect(200) + .expect((res) => { + expect(res.body[0]).not.toBeFalsy(); + expect(res.body[0]).toHaveProperty('id'); + expect(res.body[0].id).toBe(1); + }); + }); + }); + + describe('params validation', () => { + it('should return status 400', () => { + return request(server) + .get('/custom2/invalid') + .expect(400); + }); + + it('should return status 500', () => { + return request(server) + .get('/custom2/12876db5-1754-4864-96e6-c3c78f85d151') + .expect(500); + }); + }); + + describe('decidePagination', () => { + it('should return status 200', () => { + return request(server) + .get('/custom1') + .query({ page: 1, limit: 3 }) + .expect(200) + .expect((res) => { + expect(res.body).toHaveProperty('data'); + expect(res.body).toHaveProperty('count'); + expect(res.body).toHaveProperty('total'); + expect(res.body).toHaveProperty('page'); + expect(res.body).toHaveProperty('pageCount'); + }); + }); + }); +});