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":";;;;;;;;;;;AAAA,2CAA+C;AAC/C,sFAA6E;AAE7E,gCAA0C;AAC1C,oCAAqD;AACrD,kDAA2F;AAG3F,4CAKsB;AACtB,oCAA0F;AAC1F,uCA8BmB;AAanB,MAAM,cAAc,GAAG;IAIrB,WAAW,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QAC1E,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,WAAW,CACpC,WAA6B,EAC7B,aAA0B;YAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,sBAAY,mBAEL,0CAAgC,CAAC,oCAAwB,EAAE,CAAC,CAAC,EAC7D,0CAAgC,CAAC,mCAAuB,EAAE,CAAC,CAAC,GAEjE,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,sBAAgB,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,sCAAuB;YACvB,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;SACxD,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,gCAAsB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAClD,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,8BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAKD,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QACzE,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,UAAU,CACnC,WAA6B,EAC7B,aAA0B;YAE1B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC;QAEF,sBAAY,mBAEL,0CAAgC,CAAC,oCAAwB,EAAE,CAAC,CAAC,EAC7D,0CAAgC,CAAC,mCAAuB,EAAE,CAAC,CAAC,GAEjE,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,sBAAgB,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3D,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,sCAAuB;YACvB,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;SACvD,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,+BAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,8BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAKD,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QAC5E,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,aAAa,CAAC,YAAiC,EAAE,IAAS;YACnF,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,sBAAY,mBAEL,0CAAgC,CAAC,qCAAyB,EAAE,CAAC,CAAC,EAC9D,6BAAmB,CAAC,uCAAe,CAAC,IAAI,EAAE,CAAC,EAAE;YAC9C,2BAAiB,CAAC,WAAW,EAAE,oBAAY,CAAC,MAAM,CAAC;SACpD,CAAC,GAEJ,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;SAC1D,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,8BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAKD,cAAc,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QAC7E,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,cAAc,CAAC,YAAiC,EAAE,IAAS;YACpF,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,8BAAsB,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,8BAAsB,CAAC,gBAAgB,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,8BAAsB,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,gCAAwB,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,OAAO;SAMZ;QADC;YAJC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,oBAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACtD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,oBAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7C,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,oBAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;;6CACL;QAGd,sBAAY,mBAEL,0CAAgC,CAAC,qCAAyB,EAAE,CAAC,CAAC,EAC9D,6BAAmB,CAAC,uCAAe,CAAC,IAAI,EAAE,CAAC,EAAE;YAC9C,2BAAiB,CAAC,WAAW,EAAE,oBAAY,CAAC,MAAM,CAAC;SACpD,CAAC,GAEJ,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,KAAK,EAAE,oBAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACrE,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC;SAC3D,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,8BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAKD,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QAC5E,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,aAAa,CAAC,YAAiC,EAAE,IAAI;YAC9E,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACxE,CAAC,CAAC;QAEF,sBAAY,mBAEL,0CAAgC,CAAC,qCAAyB,EAAE,CAAC,CAAC,EAC9D,6BAAmB,CAAC,uCAAe,CAAC,IAAI,EAAE,CAAC,EAAE;YAC9C,2BAAiB,CAAC,WAAW,EAAE,oBAAY,CAAC,MAAM,CAAC;SACpD,CAAC,GAEJ,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7C,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;SAC1D,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,8BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAKD,aAAa,CAAC,MAAc,EAAE,IAAY,EAAE,GAAQ,EAAE,WAAwB;QAC5E,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;QAE5C,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,aAAa,CAAC,YAAiC;YACxE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,sBAAY,mBAEL,0CAAgC,CAAC,qCAAyB,EAAE,CAAC,CAAC,GAEnE,MAAM,EACN,IAAI,CACL,CAAC;QACF,uBAAa,CAAC,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACxC,yBAAe,CACb;YACE,8CAA+B,CAAC,WAAW,CAAC;YAC5C,GAAG,8BAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC;SAC1D,EACD,SAAS,CAAC,IAAI,CAAC,CAChB,CAAC;QACF,mBAAS,CAAC,mBAAW,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAClD,0BAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;QAC/C,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;CACF,CAAC;AAEF,MAAM,mBAAmB,GAAG,GAAe,EAAE,CAAC,CAAC;IAC7C,WAAW,EAAE;QACX,IAAI,EAAE,aAAa;QACnB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,sBAAa,CAAC,GAAG;QACzB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,sBAAa,CAAC,GAAG;QACzB,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,sBAAa,CAAC,IAAI;QAC1B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,cAAc,EAAE;QACd,IAAI,EAAE,gBAAgB;QACtB,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,sBAAa,CAAC,IAAI;QAC1B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,sBAAa,CAAC,KAAK;QAC3B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;IACD,aAAa,EAAE;QACb,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,EAAE;QACR,MAAM,EAAE,sBAAa,CAAC,MAAM;QAC5B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;KAChB;CACF,CAAC,CAAC;AAOU,QAAA,IAAI,GAAG,CAAC,GAAQ,EAAE,cAA2B,EAAE,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAClF,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,CAAC;IAC5C,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,2BAAiB,CAAC,MAAM,CAAC,CAAC;IAGvC,+BAAqB,CAAC,WAAW,CAAC,CAAC;IAEnC,MAAM,IAAI,GAAG,2BAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAGlD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,qBAAW,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;YAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gBACtB,KAAK,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;aAC1B;YAGD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;YACjE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;SACrB;IACH,CAAC,CAAC,CAAC;IAGH,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrD,MAAM,SAAS,GAAG,6BAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;YAEtC,MAAM,YAAY,GAAG,yBAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5D,MAAM,gBAAgB,GAAG,yBAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,MAAM,UAAU,GAAG,mBAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACnD,MAAM,iBAAiB,GAAG,0BAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACjE,MAAM,qBAAqB,GAAG,6BAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YACxE,MAAM,oBAAoB,GAAG,6BAAmB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;YAGvE,yBAAe,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,YAAY,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,mBAAS,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,8BAAoB,CAAC,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,kCAAwB,CAAC,qBAAqB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACjE,iCAAuB,CAAC,oBAAoB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAG/D,4BAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAG5C,kBAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACpD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IAGH,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;YACnC,kBAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC,CAAC;IAGH,wCAA8B,CAAC,WAAW,CAAC,CAAC;AAC9C,CAAC,CAAC;AAMW,QAAA,QAAQ,GAAG,CAAC,IAAoB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,UAA8B,EAAE,EAAE;IAChG,OAAO,CAAC,cAAc,CAAC,oCAAwB,EAAE,IAAI,IAAI,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
\ 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":"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"}
\ 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":"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"}
\ 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":";;;;;;;;;;AAAA,qCAAiG;AACjG,oEAA6D;AAC7D,yDAAiD;AAGjD,wCAA4C;AAY5C,oCAAuC;AAGvC,MAAa,iBAAqB,SAAQ,wBAAiB;IAOzD,YAAsB,IAAmB;QACvC,KAAK,EAAE,CAAC;QADY,SAAI,GAAJ,IAAI,CAAe;QAN/B,YAAO,GAAmB,EAAE,CAAC;QAG/B,sBAAiB,GAAkB,EAAE,CAAC;QACtC,wBAAmB,GAAkB,EAAE,CAAC;QAK9C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAsB,CAAC;IAC1C,CAAC;IAED,IAAY,KAAK;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;IACvC,CAAC;IAEM,gBAAgB,CAAC,KAA0B,EAAE,aAA6B;QAC/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAClG,CAAC;IAOY,OAAO,CAClB,QAA6B,EAAE,EAC/B,UAA0B,EAAE;;YAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/D,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;gBAC/C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;gBACzC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aACxD;YACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;KAAA;IAOY,MAAM,CACjB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAA0B,EAAE,EACjD,UAA0B,EAAE;;YAE5B,OAAO,IAAI,CAAC,YAAY,CACtB;gBACE,MAAM;gBACN,IAAI;gBACJ,KAAK;aACN,EACD,OAAO,CACR,CAAC;QACJ,CAAC;KAAA;IAOY,SAAS,CAAC,IAAO,EAAE,MAA2B;;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;aAC/D;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,MAAM,CAAC,CAAC;QACrC,CAAC;KAAA;IAOY,UAAU,CACrB,IAAgC,EAChC,SAA8B,EAAE;;YAEhC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC5C,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;aAC/D;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI;iBACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAU,EAAE,MAAM,CAAC,CAAC;iBACnD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAE9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,wBAAwB,CAAC,8BAA8B,CAAC,CAAC;aAC/D;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAClD,CAAC;KAAA;IAQY,SAAS,CACpB,IAAoB,EACpB,SAA8B,EAAE,EAChC,eAAsC,EAAE;;YAExC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAG9D,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBACtD,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;oBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;iBACnC;aACF;YAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,mBAAW,KAAK,EAAK,IAAI,EAAG,CAAC;QACpD,CAAC;KAAA;IAOY,SAAS,CACpB,MAA2B,EAC3B,eAAsC,EAAE;;YAExC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,YAAY,CAAC,aAAa,EAAE;gBAE9B,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;oBAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;iBACtC;gBAED,OAAO,OAAO,CAAC;aAChB;QACH,CAAC;KAAA;IAEa,YAAY,CACxB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,KAA0B,EAAE,EACjD,UAA0B,EAAE;;YAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YAErC,IAAI,CAAC,KAAK,EAAE;gBACV,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAQa,UAAU,CACtB,KAA0B,EAC1B,UAA0B,EAAE,EAC5B,IAAI,GAAG,IAAI;;YAGX,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAGpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAGzD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAGvB,IAAI,mBAAW,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;gBACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpD,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACzE;aACF;YAED,MAAM,SAAS,GAAG,mBAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,mBAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAEpC,IAAI,SAAS,IAAI,KAAK,EAAE;gBACtB,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBAEtD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACrD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;iBAC9C;qBAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACpC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;oBACtD,OAAO,CAAC,OAAO,CACb,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;yBACpD;oBACH,CAAC,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC9C,OAAO,CAAC,OAAO,CACb,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;yBAC5D;oBACH,CAAC,CAAC,CACH,CAAC;iBACH;qBAAM;oBACL,OAAO,CAAC,QAAQ,CACd,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;yBAC5D;oBACH,CAAC,CAAC,CACH,CAAC;oBACF,OAAO,CAAC,OAAO,CACb,IAAI,kBAAQ,CAAC,CAAC,EAAE,EAAE,EAAE;wBAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;4BACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,EAAS,CAAC,CAAC;yBACpD;oBACH,CAAC,CAAC,CACH,CAAC;iBACH;aACF;iBAAM,IAAI,KAAK,EAAE;gBAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACxC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBACjD;aACF;iBAAM,IAAI,SAAS,EAAE;gBAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;iBAC1D;aACF;YAGD,IAAI,mBAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;gBAE7C,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;qBACnD;iBACF;aACF;YAED,IAAI,IAAI,EAAE;gBAER,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAGtB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAChD,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpB;gBAGD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;oBAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACpB;aACF;YAYD,IAAI,aAAa,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC5C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;aACrE;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEO,YAAY,CAAC,IAAO,EAAE,SAA8B,EAAE;QAC5D,IAAI,CAAC,uBAAQ,CAAC,IAAI,CAAC,EAAE;YACnB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;gBAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;aACnC;SACF;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;YAC7B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,gCAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;YACjD,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB;QACxB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,mBACX,IAAI,IACP,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBACnB,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;gBACzC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;gBAC1E,gBAAgB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;oBACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBACrB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CACtC,CAAC,gBAAgB,CAAC,YAAY;aAChC,IACD,EACF,EAAE,CACH,CAAC;IACJ,CAAC;IAEO,WAAW,CAAC,YAAoB;QACtC,QAAQ,YAAY,EAAE;YACpB,KAAK,aAAa,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO,WAAW,CAAC;YAErB;gBACE,OAAO,UAAU,CAAC;SACrB;IACH,CAAC;IAEO,SAAS,CAAC,MAAc;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,IAAI,CAAC,wBAAwB,CAC3B,0BAA0B;oBACxB,wGAAwG,CAC3G,CAAC;aACH;YACD,IAAI,QAAQ,CAAC;YACb,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;gBAC/B,IAAI,CAAC,wBAAwB,CAAC,0BAA0B,QAAQ,GAAG,CAAC,CAAC;aACtE;YACD,MAAM,QAAQ,GAAG,CAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,OAAoB,CAAC,IAAI,CAC7E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CACpB,CAAC;YACF,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,MAAM,mBAAmB,QAAQ,GAAG,CAAC,CAAC;aAC7F;SACF;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC3B,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,MAAM,GAAG,CAAC,CAAC;aAClE;SACF;IACH,CAAC;IAEO,iBAAiB,CAAC,OAAiB,EAAE,OAAsB;QACjE,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAClD,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YACzC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,MAAM,CACZ,CAAC,MAAM,EAAE,EAAE,CACT,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM;gBACxC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC;gBAChD,CAAC,CAAC,IAAI,CAAC;gBACT,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM;oBACpC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC;oBAC7C,CAAC,CAAC,IAAI,CAAC,CACZ,CAAC;IACR,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACvC,IAAI;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAEjD,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAE7C,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE;gBAChC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC,qBAAqB;qBACrF,SAAS,CAAC;aACd;YAED,MAAM,QAAQ,GAAmD,SAAS,CAAC,IAAI,CAC7E,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CACjC,CAAC;YAEF,QAAQ,CAAC,cAAc,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;YAEnE,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAEO,OAAO,CAAC,IAAqB,EAAE,WAAwB,EAAE,OAA8B;QAC7F,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAClF,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gBAC5C,OAAO,IAAI,CAAC;aACb;YAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG;gBACrC,IAAI,EAAE,IAAI,CAAC,YAAY;gBACvB,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;gBACzC,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;gBAC1E,gBAAgB,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM;oBACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;oBACrB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CACtC,CAAC,gBAAgB,CAAC,YAAY;gBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;aACpC,CAAC;SACH;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAElE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO,IAAI,CAAC;aACb;YAED,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBACjC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAElE,MAAM,MAAM,GAAG;gBACb,QAAQ,CAAC,gBAAgB;gBACzB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,GAAG,OAAO;aACX,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;YAE1C,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEjF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpD,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAC3B;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,WAAW,CAAC,IAAuB,EAAE,CAAM,EAAE,OAA8B;QACjF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,UAAU,CAAC,IAAuB,EAAE,CAAM,EAAE,OAA8B;QAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,KAA0B,EAAE,OAAuB;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,SAAS,CAAC,KAA0B,EAAE,OAAuB;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAEpE,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM;YACjC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;YACtE,CAAC,CAAC,OAAO,CAAC;QAEd,MAAM,MAAM,GAAG;YACb,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,OAAO;YACV,IAAI;SACL,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC;QAEvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,OAAO,CAAC,KAA0B,EAAE,IAAY;QACtD,OAAO,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,CAAC;IAEO,OAAO,CAAC,KAA0B,EAAE,OAAuB;QACjE,IAAI,KAAK,CAAC,KAAK,EAAE;YACf,OAAO,OAAO,CAAC,QAAQ;gBACrB,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ;oBAC/B,CAAC,CAAC,KAAK,CAAC,KAAK;oBACb,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACpB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;SACjB;QAED,IAAI,OAAO,CAAC,KAAK,EAAE;YACjB,OAAO,OAAO,CAAC,QAAQ;gBACrB,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,QAAQ;oBACjC,CAAC,CAAC,OAAO,CAAC,KAAK;oBACf,CAAC,CAAC,OAAO,CAAC,QAAQ;gBACpB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;SACnB;QAED,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IAEO,OAAO,CAAC,KAA0B,EAAE,OAAuB;QACjE,OAAO,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM;YACpC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM;gBACrC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,EAAE,CAAC;IACT,CAAC;IAEO,OAAO,CAAC,IAAqB;QACnC,MAAM,MAAM,GAAkB,EAAE,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SAC1D;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB,CACzB,IAAuB,EACvB,KAAU;QAEV,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QAC1F,IAAI,GAAW,CAAC;QAChB,IAAI,MAAqB,CAAC;QAE1B,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACrB,KAAK,IAAI;gBACP,GAAG,GAAG,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC;gBAC7B,MAAM;YAER,KAAK,IAAI;gBACP,GAAG,GAAG,GAAG,KAAK,QAAQ,KAAK,EAAE,CAAC;gBAC9B,MAAM;YAER,KAAK,IAAI;gBACP,GAAG,GAAG,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC;gBAC7B,MAAM;YAER,KAAK,IAAI;gBACP,GAAG,GAAG,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC;gBAC7B,MAAM;YAER,KAAK,KAAK;gBACR,GAAG,GAAG,GAAG,KAAK,QAAQ,KAAK,EAAE,CAAC;gBAC9B,MAAM;YAER,KAAK,KAAK;gBACR,GAAG,GAAG,GAAG,KAAK,QAAQ,KAAK,EAAE,CAAC;gBAC9B,MAAM;YAER,KAAK,QAAQ;gBACX,GAAG,GAAG,GAAG,KAAK,UAAU,KAAK,EAAE,CAAC;gBAChC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvC,MAAM;YAER,KAAK,MAAM;gBACT,GAAG,GAAG,GAAG,KAAK,UAAU,KAAK,EAAE,CAAC;gBAChC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACvC,MAAM;YAER,KAAK,MAAM;gBACT,GAAG,GAAG,GAAG,KAAK,UAAU,KAAK,EAAE,CAAC;gBAChC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,MAAM;YAER,KAAK,MAAM;gBACT,GAAG,GAAG,GAAG,KAAK,cAAc,KAAK,EAAE,CAAC;gBACpC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACxC,MAAM;YAER,KAAK,IAAI;gBACP,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACpD,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;iBACvE;gBACD,GAAG,GAAG,GAAG,KAAK,YAAY,KAAK,GAAG,CAAC;gBACnC,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;oBACpD,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;iBACvE;gBACD,GAAG,GAAG,GAAG,KAAK,gBAAgB,KAAK,GAAG,CAAC;gBACvC,MAAM;YAER,KAAK,QAAQ;gBACX,GAAG,GAAG,GAAG,KAAK,UAAU,CAAC;gBACzB,MAAM,GAAG,EAAE,CAAC;gBACZ,MAAM;YAER,KAAK,SAAS;gBACZ,GAAG,GAAG,GAAG,KAAK,cAAc,CAAC;gBAC7B,MAAM,GAAG,EAAE,CAAC;gBACZ,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/E,IAAI,CAAC,wBAAwB,CAAC,mBAAmB,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;iBACvE;gBACD,GAAG,GAAG,GAAG,KAAK,aAAa,KAAK,UAAU,KAAK,GAAG,CAAC;gBACnD,MAAM,GAAG;oBACP,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC5B,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;iBAC7B,CAAC;gBACF,MAAM;YAER;gBACE,GAAG,GAAG,GAAG,KAAK,OAAO,KAAK,EAAE,CAAC;gBAC7B,MAAM;SACT;QAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YACjC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SAClC;QAED,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IACzB,CAAC;CACF;AA7oBD,8CA6oBC"}
\ 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');
+ });
+ });
+ });
+});