@elsikora/nestjs-crud-automator 1.10.1 → 1.10.2-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/decorator/api/controller/decorator.d.ts +4 -0
- package/dist/cjs/decorator/api/{controller.decorator.js → controller/decorator.js} +2 -2
- package/dist/cjs/decorator/api/controller/decorator.js.map +1 -0
- package/dist/cjs/decorator/api/controller/index.d.ts +2 -1
- package/dist/cjs/decorator/api/index.d.ts +0 -1
- package/dist/cjs/index.js +6 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/interface/utility/dto/generate-cache-key.interface.d.ts +9 -0
- package/dist/cjs/interface/utility/dto/index.d.ts +1 -0
- package/dist/cjs/interface/utility/index.d.ts +1 -0
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +1 -2
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +2 -2
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-cache-key.utility.d.ts +7 -0
- package/dist/cjs/utility/dto/generate-cache-key.utility.js +13 -0
- package/dist/cjs/utility/dto/generate-cache-key.utility.js.map +1 -0
- package/dist/cjs/utility/dto/generate-exception.utility.js +6 -0
- package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.js +0 -2
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate.utility.js +16 -1
- package/dist/cjs/utility/dto/generate.utility.js.map +1 -1
- package/dist/cjs/utility/dto/index.d.ts +1 -0
- package/dist/esm/decorator/api/controller/decorator.d.ts +4 -0
- package/dist/esm/decorator/api/{controller.decorator.js → controller/decorator.js} +2 -2
- package/dist/esm/decorator/api/controller/decorator.js.map +1 -0
- package/dist/esm/decorator/api/controller/index.d.ts +2 -1
- package/dist/esm/decorator/api/index.d.ts +0 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/interface/utility/dto/generate-cache-key.interface.d.ts +9 -0
- package/dist/esm/interface/utility/dto/index.d.ts +1 -0
- package/dist/esm/interface/utility/index.d.ts +1 -0
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js +1 -2
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js +2 -2
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-cache-key.utility.d.ts +7 -0
- package/dist/esm/utility/dto/generate-cache-key.utility.js +11 -0
- package/dist/esm/utility/dto/generate-cache-key.utility.js.map +1 -0
- package/dist/esm/utility/dto/generate-exception.utility.js +6 -0
- package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-filter-decorator.utility.js +0 -2
- package/dist/esm/utility/dto/generate-filter-decorator.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate.utility.js +16 -1
- package/dist/esm/utility/dto/generate.utility.js.map +1 -1
- package/dist/esm/utility/dto/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/decorator/api/controller.decorator.d.ts +0 -3
- package/dist/cjs/decorator/api/controller.decorator.js.map +0 -1
- package/dist/esm/decorator/api/controller.decorator.d.ts +0 -3
- package/dist/esm/decorator/api/controller.decorator.js.map +0 -1
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
2
|
+
import type { IApiControllerProperties } from '../../../interface/decorator/api/index';
|
|
3
|
+
import type { TApiControllerConstructor } from '../../../type/decorator/api/controller/index';
|
|
4
|
+
export declare const ApiController: <E extends IApiBaseEntity>(options: IApiControllerProperties<E>) => <T extends TApiControllerConstructor>(target: T) => T;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var controller_factory = require('
|
|
3
|
+
var controller_factory = require('../../../factory/api/controller.factory.js');
|
|
4
4
|
|
|
5
5
|
const ApiController = (options) => (target) => {
|
|
6
6
|
const factory = new controller_factory.ApiControllerFactory(target, options);
|
|
@@ -18,4 +18,4 @@ const ApiController = (options) => (target) => {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
exports.ApiController = ApiController;
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator.js","sources":["../../../../../../src/decorator/api/controller/decorator.ts"],"sourcesContent":[null],"names":["ApiControllerFactory"],"mappings":";;;;AAMO,MAAM,aAAa,GACzB,CAA2B,OAAoC,KAC/D,CAAsC,MAAS,KAAO;IACrD,MAAM,OAAO,GAA4B,IAAIA,uCAAoB,CAAI,MAAM,EAAE,OAAO,CAAC;IACrF,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,MAAM,mBAAmB,GAA2D,cAAc,MAAM,CAAA;;AAEvG,QAAA,WAAA,CAAY,GAAG,UAAe,EAAA;;AAE7B,YAAA,KAAK,CAAC,GAAG,UAAU,CAAC;;KAErB;AACD,IAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAE1E,IAAA,OAAO,mBAAwB;AAChC;;;;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { ApiController } from './decorator';
|
|
2
|
+
export { ApiControllerObservable } from './observable.decorator';
|
package/dist/cjs/index.js
CHANGED
|
@@ -35,10 +35,10 @@ var number_constant = require('./constant/number.constant.js');
|
|
|
35
35
|
var constant = require('./constant/utility/dto/constant.js');
|
|
36
36
|
var generate_constant = require('./constant/utility/dto/generate.constant.js');
|
|
37
37
|
var hasPairedCustomSuffixesFields_constant = require('./constant/validator/has-paired-custom-suffixes-fields.constant.js');
|
|
38
|
+
var decorator = require('./decorator/api/controller/decorator.js');
|
|
38
39
|
var observable_decorator = require('./decorator/api/controller/observable.decorator.js');
|
|
39
|
-
var controller_decorator = require('./decorator/api/controller.decorator.js');
|
|
40
40
|
var create_decorator = require('./decorator/api/function/create.decorator.js');
|
|
41
|
-
var decorator = require('./decorator/api/function/decorator.js');
|
|
41
|
+
var decorator$1 = require('./decorator/api/function/decorator.js');
|
|
42
42
|
var delete_decorator = require('./decorator/api/function/delete.decorator.js');
|
|
43
43
|
var getList_decorator = require('./decorator/api/function/get-list.decorator.js');
|
|
44
44
|
var getMany_decorator = require('./decorator/api/function/get-many.decorator.js');
|
|
@@ -98,6 +98,7 @@ var camelCaseString_utility = require('./utility/camel-case-string.utility.js');
|
|
|
98
98
|
var capitalizeString_utility = require('./utility/capitalize-string.utility.js');
|
|
99
99
|
var analize_utility = require('./utility/dto/analize.utility.js');
|
|
100
100
|
var buildDecorator_utility = require('./utility/dto/build-decorator.utility.js');
|
|
101
|
+
var generateCacheKey_utility = require('./utility/dto/generate-cache-key.utility.js');
|
|
101
102
|
var generateDecorator_utility = require('./utility/dto/generate-decorator.utility.js');
|
|
102
103
|
var generateDynamic_utility = require('./utility/dto/generate-dynamic.utility.js');
|
|
103
104
|
var generateException_utility = require('./utility/dto/generate-exception.utility.js');
|
|
@@ -167,10 +168,10 @@ exports.NUMBER_CONSTANT = number_constant.NUMBER_CONSTANT;
|
|
|
167
168
|
exports.DTO_UTILITY_CONSTANT = constant.DTO_UTILITY_CONSTANT;
|
|
168
169
|
exports.DTO_GENERATE_CONSTANT = generate_constant.DTO_GENERATE_CONSTANT;
|
|
169
170
|
exports.VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT = hasPairedCustomSuffixesFields_constant.VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT;
|
|
171
|
+
exports.ApiController = decorator.ApiController;
|
|
170
172
|
exports.ApiControllerObservable = observable_decorator.ApiControllerObservable;
|
|
171
|
-
exports.ApiController = controller_decorator.ApiController;
|
|
172
173
|
exports.ApiFunctionCreate = create_decorator.ApiFunctionCreate;
|
|
173
|
-
exports.ApiFunction = decorator.ApiFunction;
|
|
174
|
+
exports.ApiFunction = decorator$1.ApiFunction;
|
|
174
175
|
exports.ApiFunctionDelete = delete_decorator.ApiFunctionDelete;
|
|
175
176
|
exports.ApiFunctionGetList = getList_decorator.ApiFunctionGetList;
|
|
176
177
|
exports.ApiFunctionGetMany = getMany_decorator.ApiFunctionGetMany;
|
|
@@ -335,6 +336,7 @@ exports.CamelCaseString = camelCaseString_utility.CamelCaseString;
|
|
|
335
336
|
exports.CapitalizeString = capitalizeString_utility.CapitalizeString;
|
|
336
337
|
exports.analyzeEntityMetadata = analize_utility.analyzeEntityMetadata;
|
|
337
338
|
exports.DtoBuildDecorator = buildDecorator_utility.DtoBuildDecorator;
|
|
339
|
+
exports.DtoGenerateCacheKey = generateCacheKey_utility.DtoGenerateCacheKey;
|
|
338
340
|
exports.DtoGenerateDecorator = generateDecorator_utility.DtoGenerateDecorator;
|
|
339
341
|
exports.DtoGenerateDynamic = generateDynamic_utility.DtoGenerateDynamic;
|
|
340
342
|
exports.DtoGenerateException = generateException_utility.DtoGenerateException;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EApiDtoType, EApiRouteType } from '../../../enum/decorator/api/index';
|
|
2
|
+
import type { IApiControllerPropertiesRouteAutoDtoConfig } from '../../decorator/api/index';
|
|
3
|
+
export interface IDtoGenerateCacheKey {
|
|
4
|
+
dtoConfig?: IApiControllerPropertiesRouteAutoDtoConfig;
|
|
5
|
+
dtoType: EApiDtoType;
|
|
6
|
+
entityName: string;
|
|
7
|
+
guardName?: string;
|
|
8
|
+
method: EApiRouteType;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { IDtoGenerateCacheKey } from './generate-cache-key.interface';
|
|
@@ -43,8 +43,7 @@ function ApiControllerGetListTransformFilter(query, entityMetadata) {
|
|
|
43
43
|
continue;
|
|
44
44
|
const column = entityMetadata.columns.find((column) => column.name == key);
|
|
45
45
|
// @ts-ignore
|
|
46
|
-
|
|
47
|
-
if (column && column.metadata[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_PROPERTY_NAME].type === desribeType_enum.EApiPropertyDescribeType.RELATION) {
|
|
46
|
+
if (column && column.metadata[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY].type === desribeType_enum.EApiPropertyDescribeType.RELATION) {
|
|
48
47
|
// @ts-ignore
|
|
49
48
|
filter[key] = { id: transformOperation_utility.ApiControllerGetListTransformOperation(operation, value) };
|
|
50
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":["PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","ApiControllerGetListTransformOperation"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":["PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","EApiPropertyDescribeType","ApiControllerGetListTransformOperation"],"mappings":";;;;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;;AAGhI,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAACA,kEAAwC,CAAC,YAAY,CAAC,CAAC,IAAI,KAAKC,yCAAwB,CAAC,QAAQ,EAAE;;AAEhI,gBAAA,MAAM,CAAC,GAAc,CAAC,GAAG,EAAE,EAAE,EAAEC,iEAAsC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;;iBACnF;;gBAEN,MAAM,CAAC,GAAc,CAAC,GAAGA,iEAAsC,CAAC,SAAS,EAAE,KAAK,CAAC;;;;AAKpF,IAAA,OAAO,MAAM;AACd;;;;"}
|
|
@@ -37,8 +37,8 @@ function FilterOrderByFromEntity(entity, entityMetadata, method, dtoType, fieldS
|
|
|
37
37
|
if (isAllowedType) {
|
|
38
38
|
for (const metadataColumn of entityMetadata.columns) {
|
|
39
39
|
const metadata = metadataColumn.metadata?.[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY];
|
|
40
|
-
const useAsFilter = metadata?.properties?.[method]?.[dtoType]?.useAsOrderByFilter
|
|
41
|
-
if (metadataColumn.name == column.propertyName && metadata &&
|
|
40
|
+
const useAsFilter = metadata?.properties?.[method]?.[dtoType]?.useAsOrderByFilter !== false;
|
|
41
|
+
if (metadataColumn.name == column.propertyName && metadata && useAsFilter) {
|
|
42
42
|
const snakeUpperCase = column.propertyName
|
|
43
43
|
// eslint-disable-next-line @elsikora/unicorn/prefer-spread
|
|
44
44
|
.split("")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":["getMetadataArgsStorage","FILTER_API_INTERFACE_CONSTANT","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT"],"mappings":";;;;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwBA,8BAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;;;;IAKpE,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;QAEnL,MAAM,aAAa,GAAY,CAAC,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,MAAMC,6CAA6B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,UAAoB,CAAC,KAAK,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,YAAmC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEvV,IAAI,aAAa,EAAE;AAClB,YAAA,KAAK,MAAM,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACpD,MAAM,QAAQ,GAA0H,cAAc,CAAC,QAAQ,GAAGC,kEAAwC,CAAC,YAAY,CAA0H;AAEjV,gBAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":["getMetadataArgsStorage","FILTER_API_INTERFACE_CONSTANT","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT"],"mappings":";;;;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwBA,8BAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;;;;IAKpE,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;QAEnL,MAAM,aAAa,GAAY,CAAC,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,MAAMC,6CAA6B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,UAAoB,CAAC,KAAK,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,YAAmC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEvV,IAAI,aAAa,EAAE;AAClB,YAAA,KAAK,MAAM,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACpD,MAAM,QAAQ,GAA0H,cAAc,CAAC,QAAQ,GAAGC,kEAAwC,CAAC,YAAY,CAA0H;AAEjV,gBAAA,MAAM,WAAW,GAAY,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,kBAAkB,KAAK,KAAK;AAEpG,gBAAA,IAAI,cAAc,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,IAAI,WAAW,EAAE;AAC1E,oBAAA,MAAM,cAAc,GAAW,MAAM,CAAC;;yBAEpC,KAAK,CAAC,EAAE;AACR,yBAAA,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,KAAY;AAC5C,wBAAA,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE;4BAC5E,OAAO,GAAG,GAAG,IAAI;;AAGlB,wBAAA,OAAO,IAAI;AACZ,qBAAC;yBACA,IAAI,CAAC,EAAE;AACP,yBAAA,WAAW,EAAE;AAEf,oBAAA,WAAW,CAAC,cAAwD,CAAC,GAAG,MAAM,CAAC,YAAY;;;;;AAM/F,IAAA,OAAO,WAAW;AACnB;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IDtoGenerateCacheKey } from '../../interface/utility/index';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a unique cache key for DTO instances based on entity name, route method, DTO type, guard, and config.
|
|
4
|
+
* @param {IDtoGenerateCacheKey} key - The key object containing entity name, method, DTO type, guard name, and DTO config
|
|
5
|
+
* @returns {string} A unique string key for caching DTO instances
|
|
6
|
+
*/
|
|
7
|
+
export declare function DtoGenerateCacheKey(key: IDtoGenerateCacheKey): string;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Generates a unique cache key for DTO instances based on entity name, route method, DTO type, guard, and config.
|
|
5
|
+
* @param {IDtoGenerateCacheKey} key - The key object containing entity name, method, DTO type, guard name, and DTO config
|
|
6
|
+
* @returns {string} A unique string key for caching DTO instances
|
|
7
|
+
*/
|
|
8
|
+
function DtoGenerateCacheKey(key) {
|
|
9
|
+
return `${key.entityName}_${key.method}_${key.dtoType}_${key.guardName ?? "no-guard"}_${JSON.stringify(key.dtoConfig ?? {})}`;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
exports.DtoGenerateCacheKey = DtoGenerateCacheKey;
|
|
13
|
+
//# sourceMappingURL=generate-cache-key.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-cache-key.utility.js","sources":["../../../../../src/utility/dto/generate-cache-key.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,GAAyB,EAAA;AAC5D,IAAA,OAAO,CAAA,EAAG,GAAG,CAAC,UAAU,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAA,CAAA,EAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;AAC9H;;;;"}
|
|
@@ -25,6 +25,7 @@ require('../../enum/decorator/api/route-type.enum.js');
|
|
|
25
25
|
var common = require('@nestjs/common');
|
|
26
26
|
var camelCaseString_utility = require('../camel-case-string.utility.js');
|
|
27
27
|
|
|
28
|
+
const exceptionDtoCache = new Map();
|
|
28
29
|
/**
|
|
29
30
|
* Creates exception DTOs with standardized properties based on HTTP status codes.
|
|
30
31
|
* Generates a class with properties like correlationID, error name, message, status code, and timestamp,
|
|
@@ -33,6 +34,10 @@ var camelCaseString_utility = require('../camel-case-string.utility.js');
|
|
|
33
34
|
* @returns {Type<unknown>} A generated DTO class for the exception
|
|
34
35
|
*/
|
|
35
36
|
function DtoGenerateException(httpStatus) {
|
|
37
|
+
const cached = exceptionDtoCache.get(httpStatus);
|
|
38
|
+
if (cached) {
|
|
39
|
+
return cached;
|
|
40
|
+
}
|
|
36
41
|
const errorName = common.HttpStatus[httpStatus];
|
|
37
42
|
class GeneratedErrorDTO {
|
|
38
43
|
correlationID;
|
|
@@ -96,6 +101,7 @@ function DtoGenerateException(httpStatus) {
|
|
|
96
101
|
tslib_es6.__metadata("design:type", Number)
|
|
97
102
|
], GeneratedErrorDTO.prototype, "timestamp", void 0);
|
|
98
103
|
Object.defineProperty(GeneratedErrorDTO, "name", { value: `Exception${camelCaseString_utility.CamelCaseString(errorName)}DTO` });
|
|
104
|
+
exceptionDtoCache.set(httpStatus, GeneratedErrorDTO);
|
|
99
105
|
return GeneratedErrorDTO;
|
|
100
106
|
}
|
|
101
107
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-exception.utility.js","sources":["../../../../../src/utility/dto/generate-exception.utility.ts"],"sourcesContent":[null],"names":["HttpStatus","CamelCaseString","__decorate","ApiPropertyUUID","ApiPropertyString","EApiPropertyStringType","EXCEPTION_DTO_CONSTANT","ApiPropertyEnum","ApiPropertyNumber","EApiPropertyNumberType","DATE_CONSTANT","NUMBER_CONSTANT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;;;AAMG;AACG,SAAU,oBAAoB,CAAC,UAAsB,EAAA;
|
|
1
|
+
{"version":3,"file":"generate-exception.utility.js","sources":["../../../../../src/utility/dto/generate-exception.utility.ts"],"sourcesContent":[null],"names":["HttpStatus","CamelCaseString","__decorate","ApiPropertyUUID","ApiPropertyString","EApiPropertyStringType","EXCEPTION_DTO_CONSTANT","ApiPropertyEnum","ApiPropertyNumber","EApiPropertyNumberType","DATE_CONSTANT","NUMBER_CONSTANT"],"mappings":"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"}
|
|
@@ -32,14 +32,12 @@ function DtoGenerateFilterDecorator(metadata, entity) {
|
|
|
32
32
|
return enum_decorator.ApiPropertyEnum({ description: metadata.description, entity, enum: filterOperation_enum.EFilterOperationBoolean, enumName: "EFilterOperationBoolean", isRequired: false });
|
|
33
33
|
}
|
|
34
34
|
case desribeType_enum.EApiPropertyDescribeType.DATE: {
|
|
35
|
-
// @ts-ignore
|
|
36
35
|
return enum_decorator.ApiPropertyEnum({ entity, enum: filterOperation_enum.EFilterOperationDate, enumName: "EFilterOperationDate", isRequired: false });
|
|
37
36
|
}
|
|
38
37
|
case desribeType_enum.EApiPropertyDescribeType.ENUM: {
|
|
39
38
|
return enum_decorator.ApiPropertyEnum({ description: metadata.description, entity, enum: filterOperation_enum.EFilterOperationEnum, enumName: "EFilterOperationEnum", isRequired: false });
|
|
40
39
|
}
|
|
41
40
|
case desribeType_enum.EApiPropertyDescribeType.NUMBER: {
|
|
42
|
-
// @ts-ignore
|
|
43
41
|
return enum_decorator.ApiPropertyEnum({ description: metadata.description, entity, enum: filterOperation_enum.EFilterOperationNumber, enumName: "EFilterOperationNumber", isRequired: false });
|
|
44
42
|
}
|
|
45
43
|
case desribeType_enum.EApiPropertyDescribeType.OBJECT: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-filter-decorator.utility.js","sources":["../../../../../src/utility/dto/generate-filter-decorator.utility.ts"],"sourcesContent":[null],"names":["EApiPropertyDescribeType","ApiPropertyEnum","EFilterOperationBoolean","EFilterOperationDate","EFilterOperationEnum","EFilterOperationNumber","EFilterOperationObject","EFilterOperationRelation","EFilterOperationString","EFilterOperationUuid"],"mappings":";;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;AAQG;AACG,SAAU,0BAA0B,CAAI,QAAwC,EAAE,MAAqB,EAAA;AAC5G,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACpB,QAAA,KAAKA,yCAAwB,CAAC,OAAO,EAAE;YACtC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEC,4CAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG7J,QAAA,KAAKF,yCAAwB,CAAC,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"generate-filter-decorator.utility.js","sources":["../../../../../src/utility/dto/generate-filter-decorator.utility.ts"],"sourcesContent":[null],"names":["EApiPropertyDescribeType","ApiPropertyEnum","EFilterOperationBoolean","EFilterOperationDate","EFilterOperationEnum","EFilterOperationNumber","EFilterOperationObject","EFilterOperationRelation","EFilterOperationString","EFilterOperationUuid"],"mappings":";;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;AAQG;AACG,SAAU,0BAA0B,CAAI,QAAwC,EAAE,MAAqB,EAAA;AAC5G,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACpB,QAAA,KAAKA,yCAAwB,CAAC,OAAO,EAAE;YACtC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEC,4CAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG7J,QAAA,KAAKF,yCAAwB,CAAC,IAAI,EAAE;AACnC,YAAA,OAAOC,8BAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAEE,yCAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAGpH,QAAA,KAAKH,yCAAwB,CAAC,IAAI,EAAE;YACnC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEG,yCAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAGvJ,QAAA,KAAKJ,yCAAwB,CAAC,MAAM,EAAE;YACrC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEI,2CAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAKL,yCAAwB,CAAC,MAAM,EAAE;YACrC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEK,2CAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAKN,yCAAwB,CAAC,QAAQ,EAAE;YACvC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEM,6CAAwB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG/J,QAAA,KAAKP,yCAAwB,CAAC,MAAM,EAAE;YACrC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEO,2CAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAKR,yCAAwB,CAAC,IAAI,EAAE;YACnC,OAAOC,8BAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAEQ,yCAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;;AAGzJ;;;;"}
|
|
@@ -20,6 +20,7 @@ var routeType_enum = require('../../enum/decorator/api/route-type.enum.js');
|
|
|
20
20
|
var swagger = require('@nestjs/swagger');
|
|
21
21
|
var camelCaseString_utility = require('../camel-case-string.utility.js');
|
|
22
22
|
var buildDecorator_utility = require('./build-decorator.utility.js');
|
|
23
|
+
var generateCacheKey_utility = require('./generate-cache-key.utility.js');
|
|
23
24
|
var generateDynamic_utility = require('./generate-dynamic.utility.js');
|
|
24
25
|
var generateFilterDecorator_utility = require('./generate-filter-decorator.utility.js');
|
|
25
26
|
var generateGetListResponse_utility = require('./generate-get-list-response.utility.js');
|
|
@@ -30,6 +31,7 @@ var errorException_utility = require('../error-exception.utility.js');
|
|
|
30
31
|
var hasPairedCustomSuffixesFields_validator = require('../../validator/has-paired-custom-suffixes-fields.validator.js');
|
|
31
32
|
var classValidator = require('class-validator');
|
|
32
33
|
|
|
34
|
+
const dtoGenerateCache = new Map();
|
|
33
35
|
/**
|
|
34
36
|
* Core utility for DTO generation that determines which properties should be included in the DTO.
|
|
35
37
|
* Builds decorators, handles special cases like filter queries, and generates the appropriate class
|
|
@@ -48,6 +50,17 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
|
|
|
48
50
|
if (!isShouldBeGenerated_utility.DtoIsShouldBeGenerated(method, dtoType)) {
|
|
49
51
|
return undefined;
|
|
50
52
|
}
|
|
53
|
+
const cacheKey = generateCacheKey_utility.DtoGenerateCacheKey({
|
|
54
|
+
dtoConfig,
|
|
55
|
+
dtoType,
|
|
56
|
+
entityName: String(entityMetadata.name),
|
|
57
|
+
guardName: currentGuard?.name,
|
|
58
|
+
method,
|
|
59
|
+
});
|
|
60
|
+
const cached = dtoGenerateCache.get(cacheKey);
|
|
61
|
+
if (cached) {
|
|
62
|
+
return cached;
|
|
63
|
+
}
|
|
51
64
|
if (!entityMetadata.primaryKey?.metadata?.[propertyDescribe_constant.PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY]) {
|
|
52
65
|
throw errorException_utility.ErrorException(`Primary key for entity ${String(entityMetadata.name)} not found in metadata storage`);
|
|
53
66
|
}
|
|
@@ -172,7 +185,9 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
|
|
|
172
185
|
value: `${entityMetadata.name ?? "UnknownResource"}${camelCaseString_utility.CamelCaseString(method)}${camelCaseString_utility.CamelCaseString(dtoType)}DTO`,
|
|
173
186
|
});
|
|
174
187
|
// @ts-ignore
|
|
175
|
-
|
|
188
|
+
const result = method === routeType_enum.EApiRouteType.GET_LIST && dtoType === dtoType_enum.EApiDtoType.RESPONSE ? generateGetListResponse_utility.DtoGenerateGetListResponse(entity, GeneratedDTO, `${entityMetadata.name ?? "UnknownResource"}${camelCaseString_utility.CamelCaseString(method)}${camelCaseString_utility.CamelCaseString(dtoType)}ItemsDTO`) : GeneratedDTO;
|
|
189
|
+
dtoGenerateCache.set(cacheKey, result);
|
|
190
|
+
return result;
|
|
176
191
|
}
|
|
177
192
|
|
|
178
193
|
exports.DtoGenerate = DtoGenerate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.utility.js","sources":["../../../../../src/utility/dto/generate.utility.ts"],"sourcesContent":[null],"names":["DtoIsShouldBeGenerated","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","ErrorException","DtoIsPropertyShouldBeMarked","EApiRouteType","EApiDtoType","DtoGetGetListQueryBaseClass","DtoGenerateDynamic","DtoBuildDecorator","DtoGenerateFilterDecorator","DTO_GENERATE_CONSTANT","EApiPropertyDescribeType","Validate","HasPairedCustomSuffixesFieldsValidator","ApiExtraModels","CamelCaseString","DtoGenerateGetListResponse"],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.utility.js","sources":["../../../../../src/utility/dto/generate.utility.ts"],"sourcesContent":[null],"names":["DtoIsShouldBeGenerated","DtoGenerateCacheKey","PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT","ErrorException","DtoIsPropertyShouldBeMarked","EApiRouteType","EApiDtoType","DtoGetGetListQueryBaseClass","DtoGenerateDynamic","DtoBuildDecorator","DtoGenerateFilterDecorator","DTO_GENERATE_CONSTANT","EApiPropertyDescribeType","Validate","HasPairedCustomSuffixesFieldsValidator","ApiExtraModels","CamelCaseString","DtoGenerateGetListResponse"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { analyzeEntityMetadata } from './analize.utility';
|
|
2
2
|
export { DtoBuildDecorator } from './build-decorator.utility';
|
|
3
|
+
export { DtoGenerateCacheKey } from './generate-cache-key.utility';
|
|
3
4
|
export { DtoGenerateDecorator } from './generate-decorator.utility';
|
|
4
5
|
export { DtoGenerateDynamic } from './generate-dynamic.utility';
|
|
5
6
|
export { DtoGenerateException } from './generate-exception.utility';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
2
|
+
import type { IApiControllerProperties } from '../../../interface/decorator/api/index';
|
|
3
|
+
import type { TApiControllerConstructor } from '../../../type/decorator/api/controller/index';
|
|
4
|
+
export declare const ApiController: <E extends IApiBaseEntity>(options: IApiControllerProperties<E>) => <T extends TApiControllerConstructor>(target: T) => T;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApiControllerFactory } from '
|
|
1
|
+
import { ApiControllerFactory } from '../../../factory/api/controller.factory.js';
|
|
2
2
|
|
|
3
3
|
const ApiController = (options) => (target) => {
|
|
4
4
|
const factory = new ApiControllerFactory(target, options);
|
|
@@ -16,4 +16,4 @@ const ApiController = (options) => (target) => {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
export { ApiController };
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorator.js","sources":["../../../../../../src/decorator/api/controller/decorator.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,aAAa,GACzB,CAA2B,OAAoC,KAC/D,CAAsC,MAAS,KAAO;IACrD,MAAM,OAAO,GAA4B,IAAI,oBAAoB,CAAI,MAAM,EAAE,OAAO,CAAC;IACrF,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,MAAM,mBAAmB,GAA2D,cAAc,MAAM,CAAA;;AAEvG,QAAA,WAAA,CAAY,GAAG,UAAe,EAAA;;AAE7B,YAAA,KAAK,CAAC,GAAG,UAAU,CAAC;;KAErB;AACD,IAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAE1E,IAAA,OAAO,mBAAwB;AAChC;;;;"}
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export { ApiController } from './decorator';
|
|
2
|
+
export { ApiControllerObservable } from './observable.decorator';
|
package/dist/esm/index.js
CHANGED
|
@@ -33,8 +33,8 @@ export { NUMBER_CONSTANT } from './constant/number.constant.js';
|
|
|
33
33
|
export { DTO_UTILITY_CONSTANT } from './constant/utility/dto/constant.js';
|
|
34
34
|
export { DTO_GENERATE_CONSTANT } from './constant/utility/dto/generate.constant.js';
|
|
35
35
|
export { VALIDATOR_HAS_PAIRED_CUSTOM_SUFFIXES_FIELDS_CONSTANT } from './constant/validator/has-paired-custom-suffixes-fields.constant.js';
|
|
36
|
+
export { ApiController } from './decorator/api/controller/decorator.js';
|
|
36
37
|
export { ApiControllerObservable } from './decorator/api/controller/observable.decorator.js';
|
|
37
|
-
export { ApiController } from './decorator/api/controller.decorator.js';
|
|
38
38
|
export { ApiFunctionCreate } from './decorator/api/function/create.decorator.js';
|
|
39
39
|
export { ApiFunction } from './decorator/api/function/decorator.js';
|
|
40
40
|
export { ApiFunctionDelete } from './decorator/api/function/delete.decorator.js';
|
|
@@ -96,6 +96,7 @@ export { CamelCaseString } from './utility/camel-case-string.utility.js';
|
|
|
96
96
|
export { CapitalizeString } from './utility/capitalize-string.utility.js';
|
|
97
97
|
export { analyzeEntityMetadata } from './utility/dto/analize.utility.js';
|
|
98
98
|
export { DtoBuildDecorator } from './utility/dto/build-decorator.utility.js';
|
|
99
|
+
export { DtoGenerateCacheKey } from './utility/dto/generate-cache-key.utility.js';
|
|
99
100
|
export { DtoGenerateDecorator } from './utility/dto/generate-decorator.utility.js';
|
|
100
101
|
export { DtoGenerateDynamic } from './utility/dto/generate-dynamic.utility.js';
|
|
101
102
|
export { DtoGenerateException } from './utility/dto/generate-exception.utility.js';
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { EApiDtoType, EApiRouteType } from '../../../enum/decorator/api/index';
|
|
2
|
+
import type { IApiControllerPropertiesRouteAutoDtoConfig } from '../../decorator/api/index';
|
|
3
|
+
export interface IDtoGenerateCacheKey {
|
|
4
|
+
dtoConfig?: IApiControllerPropertiesRouteAutoDtoConfig;
|
|
5
|
+
dtoType: EApiDtoType;
|
|
6
|
+
entityName: string;
|
|
7
|
+
guardName?: string;
|
|
8
|
+
method: EApiRouteType;
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { IDtoGenerateCacheKey } from './generate-cache-key.interface';
|
|
@@ -41,8 +41,7 @@ function ApiControllerGetListTransformFilter(query, entityMetadata) {
|
|
|
41
41
|
continue;
|
|
42
42
|
const column = entityMetadata.columns.find((column) => column.name == key);
|
|
43
43
|
// @ts-ignore
|
|
44
|
-
|
|
45
|
-
if (column && column.metadata[PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_PROPERTY_NAME].type === EApiPropertyDescribeType.RELATION) {
|
|
44
|
+
if (column && column.metadata[PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY].type === EApiPropertyDescribeType.RELATION) {
|
|
46
45
|
// @ts-ignore
|
|
47
46
|
filter[key] = { id: ApiControllerGetListTransformOperation(operation, value) };
|
|
48
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"transform-filter.utility.js","sources":["../../../../../../../src/utility/api/controller/get-list/transform-filter.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AASA;;;;;;;;AAQG;AACG,SAAU,mCAAmC,CAAI,KAA8B,EAAE,cAA6B,EAAA;IACnH,MAAM,MAAM,GAAwB,EAAE;IAEtC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE;AAE5B,QAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAkB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAEtD,QAAA,IAAI,CAAC,KAAK;YAAE;QAEZ,MAAM,UAAU,GAAW,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;QAEjD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE;YACtD,MAAM,SAAS,GAAqB,KAAK,CAAC,CAAA,EAAG,MAAM,CAAC,GAAG,CAAC,CAAA,UAAA,CAAY,CAAqB;AAEzF,YAAA,MAAM,KAAK,GAAY,KAAK,CAAC,OAAO,CAAC;AAErC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;gBAAE;AAEjE,YAAA,MAAM,MAAM,GAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2B,KAAK,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC;;AAGhI,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,wCAAwC,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAAC,QAAQ,EAAE;;AAEhI,gBAAA,MAAM,CAAC,GAAc,CAAC,GAAG,EAAE,EAAE,EAAE,sCAAsC,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE;;iBACnF;;gBAEN,MAAM,CAAC,GAAc,CAAC,GAAG,sCAAsC,CAAC,SAAS,EAAE,KAAK,CAAC;;;;AAKpF,IAAA,OAAO,MAAM;AACd;;;;"}
|
|
@@ -35,8 +35,8 @@ function FilterOrderByFromEntity(entity, entityMetadata, method, dtoType, fieldS
|
|
|
35
35
|
if (isAllowedType) {
|
|
36
36
|
for (const metadataColumn of entityMetadata.columns) {
|
|
37
37
|
const metadata = metadataColumn.metadata?.[PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY];
|
|
38
|
-
const useAsFilter = metadata?.properties?.[method]?.[dtoType]?.useAsOrderByFilter
|
|
39
|
-
if (metadataColumn.name == column.propertyName && metadata &&
|
|
38
|
+
const useAsFilter = metadata?.properties?.[method]?.[dtoType]?.useAsOrderByFilter !== false;
|
|
39
|
+
if (metadataColumn.name == column.propertyName && metadata && useAsFilter) {
|
|
40
40
|
const snakeUpperCase = column.propertyName
|
|
41
41
|
// eslint-disable-next-line @elsikora/unicorn/prefer-spread
|
|
42
42
|
.split("")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwB,sBAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;;;;IAKpE,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;QAEnL,MAAM,aAAa,GAAY,CAAC,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,MAAM,6BAA6B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,UAAoB,CAAC,KAAK,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,YAAmC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEvV,IAAI,aAAa,EAAE;AAClB,YAAA,KAAK,MAAM,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACpD,MAAM,QAAQ,GAA0H,cAAc,CAAC,QAAQ,GAAG,wCAAwC,CAAC,YAAY,CAA0H;AAEjV,gBAAA,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"filter-order-by-from-entity.utility.js","sources":["../../../../../src/utility/api/filter-order-by-from-entity.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAeA;;;;;;;;;;;;AAYG;AACG,SAAU,uBAAuB,CAAI,MAAqB,EAAE,cAA6B,EAAE,MAAqB,EAAE,OAAoB,EAAE,aAAmD,EAAA;AAChM,IAAA,MAAM,QAAQ,GAAwB,sBAAsB,EAAE;AAC9D,IAAA,MAAM,OAAO,GAA8B,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAA0B,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;IAE3H,IAAI,aAAa,EAAE;AAClB,QAAA,MAAM,YAAY,GAAgB,IAAI,GAAG,CAAS,OAAO,CAAC,GAAG,CAAC,CAAC,GAAuB,KAAK,GAAG,CAAC,YAAY,CAAC,CAAC;AAE7G,QAAA,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AAC7B,gBAAA,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAA,+BAAA,CAAiC,CAAC;;;;IAKpE,MAAM,WAAW,GAAqC,EAAE;AAExD,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC7B,MAAM,UAAU,GAAmB,MAAM,CAAC,OAAO,EAAE,IAAsB,IAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAmB,EAAE,MAAM,CAAC,YAAY,CAAmB;QAEnL,MAAM,aAAa,GAAY,CAAC,OAAO,UAAU,KAAK,UAAU,KAAK,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,IAAI,CAAC,MAAM,6BAA6B,CAAC,gCAAgC,CAAC,QAAQ,CAAC,UAAoB,CAAC,KAAK,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC,YAAmC,CAAC,KAAK,KAAK,CAAC,CAAC;QAEvV,IAAI,aAAa,EAAE;AAClB,YAAA,KAAK,MAAM,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBACpD,MAAM,QAAQ,GAA0H,cAAc,CAAC,QAAQ,GAAG,wCAAwC,CAAC,YAAY,CAA0H;AAEjV,gBAAA,MAAM,WAAW,GAAY,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,EAAE,kBAAkB,KAAK,KAAK;AAEpG,gBAAA,IAAI,cAAc,CAAC,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,QAAQ,IAAI,WAAW,EAAE;AAC1E,oBAAA,MAAM,cAAc,GAAW,MAAM,CAAC;;yBAEpC,KAAK,CAAC,EAAE;AACR,yBAAA,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,KAAY;AAC5C,wBAAA,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE;4BAC5E,OAAO,GAAG,GAAG,IAAI;;AAGlB,wBAAA,OAAO,IAAI;AACZ,qBAAC;yBACA,IAAI,CAAC,EAAE;AACP,yBAAA,WAAW,EAAE;AAEf,oBAAA,WAAW,CAAC,cAAwD,CAAC,GAAG,MAAM,CAAC,YAAY;;;;;AAM/F,IAAA,OAAO,WAAW;AACnB;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IDtoGenerateCacheKey } from '../../interface/utility/index';
|
|
2
|
+
/**
|
|
3
|
+
* Generates a unique cache key for DTO instances based on entity name, route method, DTO type, guard, and config.
|
|
4
|
+
* @param {IDtoGenerateCacheKey} key - The key object containing entity name, method, DTO type, guard name, and DTO config
|
|
5
|
+
* @returns {string} A unique string key for caching DTO instances
|
|
6
|
+
*/
|
|
7
|
+
export declare function DtoGenerateCacheKey(key: IDtoGenerateCacheKey): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates a unique cache key for DTO instances based on entity name, route method, DTO type, guard, and config.
|
|
3
|
+
* @param {IDtoGenerateCacheKey} key - The key object containing entity name, method, DTO type, guard name, and DTO config
|
|
4
|
+
* @returns {string} A unique string key for caching DTO instances
|
|
5
|
+
*/
|
|
6
|
+
function DtoGenerateCacheKey(key) {
|
|
7
|
+
return `${key.entityName}_${key.method}_${key.dtoType}_${key.guardName ?? "no-guard"}_${JSON.stringify(key.dtoConfig ?? {})}`;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export { DtoGenerateCacheKey };
|
|
11
|
+
//# sourceMappingURL=generate-cache-key.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-cache-key.utility.js","sources":["../../../../../src/utility/dto/generate-cache-key.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,GAAyB,EAAA;AAC5D,IAAA,OAAO,CAAA,EAAG,GAAG,CAAC,UAAU,CAAA,CAAA,EAAI,GAAG,CAAC,MAAM,CAAA,CAAA,EAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,IAAI,UAAU,CAAA,CAAA,EAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;AAC9H;;;;"}
|
|
@@ -23,6 +23,7 @@ import '../../enum/decorator/api/route-type.enum.js';
|
|
|
23
23
|
import { HttpStatus } from '@nestjs/common';
|
|
24
24
|
import { CamelCaseString } from '../camel-case-string.utility.js';
|
|
25
25
|
|
|
26
|
+
const exceptionDtoCache = new Map();
|
|
26
27
|
/**
|
|
27
28
|
* Creates exception DTOs with standardized properties based on HTTP status codes.
|
|
28
29
|
* Generates a class with properties like correlationID, error name, message, status code, and timestamp,
|
|
@@ -31,6 +32,10 @@ import { CamelCaseString } from '../camel-case-string.utility.js';
|
|
|
31
32
|
* @returns {Type<unknown>} A generated DTO class for the exception
|
|
32
33
|
*/
|
|
33
34
|
function DtoGenerateException(httpStatus) {
|
|
35
|
+
const cached = exceptionDtoCache.get(httpStatus);
|
|
36
|
+
if (cached) {
|
|
37
|
+
return cached;
|
|
38
|
+
}
|
|
34
39
|
const errorName = HttpStatus[httpStatus];
|
|
35
40
|
class GeneratedErrorDTO {
|
|
36
41
|
correlationID;
|
|
@@ -94,6 +99,7 @@ function DtoGenerateException(httpStatus) {
|
|
|
94
99
|
__metadata("design:type", Number)
|
|
95
100
|
], GeneratedErrorDTO.prototype, "timestamp", void 0);
|
|
96
101
|
Object.defineProperty(GeneratedErrorDTO, "name", { value: `Exception${CamelCaseString(errorName)}DTO` });
|
|
102
|
+
exceptionDtoCache.set(httpStatus, GeneratedErrorDTO);
|
|
97
103
|
return GeneratedErrorDTO;
|
|
98
104
|
}
|
|
99
105
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-exception.utility.js","sources":["../../../../../src/utility/dto/generate-exception.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA;;;;;;AAMG;AACG,SAAU,oBAAoB,CAAC,UAAsB,EAAA;
|
|
1
|
+
{"version":3,"file":"generate-exception.utility.js","sources":["../../../../../src/utility/dto/generate-exception.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -30,14 +30,12 @@ function DtoGenerateFilterDecorator(metadata, entity) {
|
|
|
30
30
|
return ApiPropertyEnum({ description: metadata.description, entity, enum: EFilterOperationBoolean, enumName: "EFilterOperationBoolean", isRequired: false });
|
|
31
31
|
}
|
|
32
32
|
case EApiPropertyDescribeType.DATE: {
|
|
33
|
-
// @ts-ignore
|
|
34
33
|
return ApiPropertyEnum({ entity, enum: EFilterOperationDate, enumName: "EFilterOperationDate", isRequired: false });
|
|
35
34
|
}
|
|
36
35
|
case EApiPropertyDescribeType.ENUM: {
|
|
37
36
|
return ApiPropertyEnum({ description: metadata.description, entity, enum: EFilterOperationEnum, enumName: "EFilterOperationEnum", isRequired: false });
|
|
38
37
|
}
|
|
39
38
|
case EApiPropertyDescribeType.NUMBER: {
|
|
40
|
-
// @ts-ignore
|
|
41
39
|
return ApiPropertyEnum({ description: metadata.description, entity, enum: EFilterOperationNumber, enumName: "EFilterOperationNumber", isRequired: false });
|
|
42
40
|
}
|
|
43
41
|
case EApiPropertyDescribeType.OBJECT: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-filter-decorator.utility.js","sources":["../../../../../src/utility/dto/generate-filter-decorator.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA;;;;;;;;AAQG;AACG,SAAU,0BAA0B,CAAI,QAAwC,EAAE,MAAqB,EAAA;AAC5G,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACpB,QAAA,KAAK,wBAAwB,CAAC,OAAO,EAAE;YACtC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG7J,QAAA,KAAK,wBAAwB,CAAC,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"generate-filter-decorator.utility.js","sources":["../../../../../src/utility/dto/generate-filter-decorator.utility.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA;;;;;;;;AAQG;AACG,SAAU,0BAA0B,CAAI,QAAwC,EAAE,MAAqB,EAAA;AAC5G,IAAA,QAAQ,QAAQ,CAAC,IAAI;AACpB,QAAA,KAAK,wBAAwB,CAAC,OAAO,EAAE;YACtC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG7J,QAAA,KAAK,wBAAwB,CAAC,IAAI,EAAE;AACnC,YAAA,OAAO,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAGpH,QAAA,KAAK,wBAAwB,CAAC,IAAI,EAAE;YACnC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAGvJ,QAAA,KAAK,wBAAwB,CAAC,MAAM,EAAE;YACrC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAK,wBAAwB,CAAC,MAAM,EAAE;YACrC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAK,wBAAwB,CAAC,QAAQ,EAAE;YACvC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,0BAA0B,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG/J,QAAA,KAAK,wBAAwB,CAAC,MAAM,EAAE;YACrC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;AAG3J,QAAA,KAAK,wBAAwB,CAAC,IAAI,EAAE;YACnC,OAAO,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;;;AAGzJ;;;;"}
|
|
@@ -18,6 +18,7 @@ import { EApiRouteType } from '../../enum/decorator/api/route-type.enum.js';
|
|
|
18
18
|
import { ApiExtraModels } from '@nestjs/swagger';
|
|
19
19
|
import { CamelCaseString } from '../camel-case-string.utility.js';
|
|
20
20
|
import { DtoBuildDecorator } from './build-decorator.utility.js';
|
|
21
|
+
import { DtoGenerateCacheKey } from './generate-cache-key.utility.js';
|
|
21
22
|
import { DtoGenerateDynamic } from './generate-dynamic.utility.js';
|
|
22
23
|
import { DtoGenerateFilterDecorator } from './generate-filter-decorator.utility.js';
|
|
23
24
|
import { DtoGenerateGetListResponse } from './generate-get-list-response.utility.js';
|
|
@@ -28,6 +29,7 @@ import { ErrorException } from '../error-exception.utility.js';
|
|
|
28
29
|
import { HasPairedCustomSuffixesFieldsValidator } from '../../validator/has-paired-custom-suffixes-fields.validator.js';
|
|
29
30
|
import { Validate } from 'class-validator';
|
|
30
31
|
|
|
32
|
+
const dtoGenerateCache = new Map();
|
|
31
33
|
/**
|
|
32
34
|
* Core utility for DTO generation that determines which properties should be included in the DTO.
|
|
33
35
|
* Builds decorators, handles special cases like filter queries, and generates the appropriate class
|
|
@@ -46,6 +48,17 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
|
|
|
46
48
|
if (!DtoIsShouldBeGenerated(method, dtoType)) {
|
|
47
49
|
return undefined;
|
|
48
50
|
}
|
|
51
|
+
const cacheKey = DtoGenerateCacheKey({
|
|
52
|
+
dtoConfig,
|
|
53
|
+
dtoType,
|
|
54
|
+
entityName: String(entityMetadata.name),
|
|
55
|
+
guardName: currentGuard?.name,
|
|
56
|
+
method,
|
|
57
|
+
});
|
|
58
|
+
const cached = dtoGenerateCache.get(cacheKey);
|
|
59
|
+
if (cached) {
|
|
60
|
+
return cached;
|
|
61
|
+
}
|
|
49
62
|
if (!entityMetadata.primaryKey?.metadata?.[PROPERTY_DESCRIBE_DECORATOR_API_CONSTANT.METADATA_KEY]) {
|
|
50
63
|
throw ErrorException(`Primary key for entity ${String(entityMetadata.name)} not found in metadata storage`);
|
|
51
64
|
}
|
|
@@ -170,7 +183,9 @@ function DtoGenerate(entity, entityMetadata, method, dtoType, dtoConfig, current
|
|
|
170
183
|
value: `${entityMetadata.name ?? "UnknownResource"}${CamelCaseString(method)}${CamelCaseString(dtoType)}DTO`,
|
|
171
184
|
});
|
|
172
185
|
// @ts-ignore
|
|
173
|
-
|
|
186
|
+
const result = method === EApiRouteType.GET_LIST && dtoType === EApiDtoType.RESPONSE ? DtoGenerateGetListResponse(entity, GeneratedDTO, `${entityMetadata.name ?? "UnknownResource"}${CamelCaseString(method)}${CamelCaseString(dtoType)}ItemsDTO`) : GeneratedDTO;
|
|
187
|
+
dtoGenerateCache.set(cacheKey, result);
|
|
188
|
+
return result;
|
|
174
189
|
}
|
|
175
190
|
|
|
176
191
|
export { DtoGenerate };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.utility.js","sources":["../../../../../src/utility/dto/generate.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.utility.js","sources":["../../../../../src/utility/dto/generate.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { analyzeEntityMetadata } from './analize.utility';
|
|
2
2
|
export { DtoBuildDecorator } from './build-decorator.utility';
|
|
3
|
+
export { DtoGenerateCacheKey } from './generate-cache-key.utility';
|
|
3
4
|
export { DtoGenerateDecorator } from './generate-decorator.utility';
|
|
4
5
|
export { DtoGenerateDynamic } from './generate-dynamic.utility';
|
|
5
6
|
export { DtoGenerateException } from './generate-exception.utility';
|
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { IApiBaseEntity, IApiControllerProperties } from '../../interface/index';
|
|
2
|
-
import type { TApiControllerConstructor } from '../../type/index';
|
|
3
|
-
export declare const ApiController: <E extends IApiBaseEntity>(options: IApiControllerProperties<E>) => <T extends TApiControllerConstructor>(target: T) => T;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sources":["../../../../../src/decorator/api/controller.decorator.ts"],"sourcesContent":[null],"names":["ApiControllerFactory"],"mappings":";;;;AAKO,MAAM,aAAa,GACzB,CAA2B,OAAoC,KAC/D,CAAsC,MAAS,KAAO;IACrD,MAAM,OAAO,GAA4B,IAAIA,uCAAoB,CAAI,MAAM,EAAE,OAAO,CAAC;IACrF,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,MAAM,mBAAmB,GAA2D,cAAc,MAAM,CAAA;;AAEvG,QAAA,WAAA,CAAY,GAAG,UAAe,EAAA;;AAE7B,YAAA,KAAK,CAAC,GAAG,UAAU,CAAC;;KAErB;AACD,IAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAE1E,IAAA,OAAO,mBAAwB;AAChC;;;;"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { IApiBaseEntity, IApiControllerProperties } from '../../interface/index';
|
|
2
|
-
import type { TApiControllerConstructor } from '../../type/index';
|
|
3
|
-
export declare const ApiController: <E extends IApiBaseEntity>(options: IApiControllerProperties<E>) => <T extends TApiControllerConstructor>(target: T) => T;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sources":["../../../../../src/decorator/api/controller.decorator.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAKO,MAAM,aAAa,GACzB,CAA2B,OAAoC,KAC/D,CAAsC,MAAS,KAAO;IACrD,MAAM,OAAO,GAA4B,IAAI,oBAAoB,CAAI,MAAM,EAAE,OAAO,CAAC;IACrF,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,MAAM,mBAAmB,GAA2D,cAAc,MAAM,CAAA;;AAEvG,QAAA,WAAA,CAAY,GAAG,UAAe,EAAA;;AAE7B,YAAA,KAAK,CAAC,GAAG,UAAU,CAAC;;KAErB;AACD,IAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAE1E,IAAA,OAAO,mBAAwB;AAChC;;;;"}
|