@foxiko/nest-common 0.2.9 → 0.2.11
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/build/common/decorators/inject-entity.decorator.d.ts +1 -1
- package/build/common/decorators/inject-entity.decorator.js +22 -1
- package/build/common/decorators/inject-entity.decorator.js.map +1 -1
- package/build/common/utils/api-property.util.js +15 -3
- package/build/common/utils/api-property.util.js.map +1 -1
- package/package.json +1 -1
|
@@ -6,5 +6,5 @@ export declare class CrudEntityInterceptor implements NestInterceptor {
|
|
|
6
6
|
constructor(em: EntityManager);
|
|
7
7
|
intercept(context: ExecutionContext, next: CallHandler): Promise<Observable<any>>;
|
|
8
8
|
}
|
|
9
|
-
export declare function InjectCrudEntity():
|
|
9
|
+
export declare function InjectCrudEntity(): (target: Function) => void;
|
|
10
10
|
export declare const FetchedEntity: (...dataOrPipes: unknown[]) => ParameterDecorator;
|
|
@@ -17,6 +17,7 @@ const core_1 = require("@mikro-orm/core");
|
|
|
17
17
|
const mongodb_1 = require("mongodb");
|
|
18
18
|
const mongodb_2 = require("@mikro-orm/mongodb");
|
|
19
19
|
const entity_name_util_1 = require("../utils/entity-name.util");
|
|
20
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
20
21
|
let CrudEntityInterceptor = class CrudEntityInterceptor {
|
|
21
22
|
constructor(em) {
|
|
22
23
|
this.em = em;
|
|
@@ -92,7 +93,27 @@ exports.CrudEntityInterceptor = CrudEntityInterceptor = __decorate([
|
|
|
92
93
|
__metadata("design:paramtypes", [core_1.EntityManager])
|
|
93
94
|
], CrudEntityInterceptor);
|
|
94
95
|
function InjectCrudEntity() {
|
|
95
|
-
return (
|
|
96
|
+
return (target) => {
|
|
97
|
+
const path = Reflect.getMetadata('path', target);
|
|
98
|
+
const params = [];
|
|
99
|
+
if (path) {
|
|
100
|
+
const pathStr = Array.isArray(path) ? path[0] : path;
|
|
101
|
+
if (typeof pathStr === 'string') {
|
|
102
|
+
const regex = /:([^\/]+)/g;
|
|
103
|
+
let match;
|
|
104
|
+
while ((match = regex.exec(pathStr)) !== null) {
|
|
105
|
+
params.push(match[1]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const decorators = [
|
|
110
|
+
(0, common_1.UseInterceptors)(CrudEntityInterceptor),
|
|
111
|
+
];
|
|
112
|
+
for (const param of params) {
|
|
113
|
+
decorators.push((0, swagger_1.ApiParam)({ name: param, type: 'string' }));
|
|
114
|
+
}
|
|
115
|
+
(0, common_1.applyDecorators)(...decorators)(target);
|
|
116
|
+
};
|
|
96
117
|
}
|
|
97
118
|
exports.FetchedEntity = (0, common_1.createParamDecorator)((data, ctx) => {
|
|
98
119
|
const request = ctx.switchToHttp().getRequest();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-entity.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/inject-entity.decorator.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-entity.decorator.js","sourceRoot":"","sources":["../../../src/common/decorators/inject-entity.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.ApiPropertyUtil = void 0;
|
|
|
4
4
|
const swagger_1 = require("@nestjs/swagger");
|
|
5
5
|
const class_transformer_1 = require("class-transformer");
|
|
6
6
|
const mongodb_1 = require("mongodb");
|
|
7
|
+
const core_1 = require("@mikro-orm/core");
|
|
7
8
|
class ApiPropertyUtil {
|
|
8
9
|
static createApiEntity(entity, visited = new Set()) {
|
|
9
10
|
if (!entity || visited.has(entity)) {
|
|
@@ -11,6 +12,7 @@ class ApiPropertyUtil {
|
|
|
11
12
|
}
|
|
12
13
|
visited.add(entity);
|
|
13
14
|
const { defaultMetadataStorage } = require('class-transformer/cjs/storage');
|
|
15
|
+
const ormMeta = core_1.MetadataStorage.getMetadataFromDecorator(entity);
|
|
14
16
|
const exposedMetadatas = defaultMetadataStorage.getExposedMetadatas(entity);
|
|
15
17
|
if (!(exposedMetadatas === null || exposedMetadatas === void 0 ? void 0 : exposedMetadatas.length)) {
|
|
16
18
|
return;
|
|
@@ -42,18 +44,28 @@ class ApiPropertyUtil {
|
|
|
42
44
|
this.createApiEntity(itemType, visited);
|
|
43
45
|
}
|
|
44
46
|
if (!Reflect.hasMetadata('swagger/apiModelProperties', entity.prototype, propertyName)) {
|
|
47
|
+
let required = true;
|
|
48
|
+
if (required === undefined && ormMeta) {
|
|
49
|
+
const prop = ormMeta.properties[propertyName];
|
|
50
|
+
if (prop && (prop.nullable || prop.optional)) {
|
|
51
|
+
required = false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
45
54
|
if (itemType === mongodb_1.ObjectId) {
|
|
46
55
|
if (isArray) {
|
|
47
56
|
(0, class_transformer_1.Transform)(({ value }) => value === null || value === void 0 ? void 0 : value.map(v => v === null || v === void 0 ? void 0 : v.toString()))(entity.prototype, propertyName);
|
|
48
|
-
(0, swagger_1.ApiProperty)({ type: () => String, isArray: true })(entity.prototype, (_a = metadata.options.name) !== null && _a !== void 0 ? _a : propertyName);
|
|
57
|
+
(0, swagger_1.ApiProperty)({ type: () => String, isArray: true, required })(entity.prototype, (_a = metadata.options.name) !== null && _a !== void 0 ? _a : propertyName);
|
|
49
58
|
}
|
|
50
59
|
else {
|
|
51
60
|
(0, class_transformer_1.Transform)(({ value }) => value === null || value === void 0 ? void 0 : value.toString())(entity.prototype, propertyName);
|
|
52
|
-
(0, swagger_1.ApiProperty)({ type: () => String })(entity.prototype, (_b = metadata.options.name) !== null && _b !== void 0 ? _b : propertyName);
|
|
61
|
+
(0, swagger_1.ApiProperty)({ type: () => String, required })(entity.prototype, (_b = metadata.options.name) !== null && _b !== void 0 ? _b : propertyName);
|
|
53
62
|
}
|
|
54
63
|
}
|
|
55
64
|
else {
|
|
56
|
-
const options = {
|
|
65
|
+
const options = {
|
|
66
|
+
type: () => itemType,
|
|
67
|
+
required: required,
|
|
68
|
+
};
|
|
57
69
|
if (isArray) {
|
|
58
70
|
options.isArray = true;
|
|
59
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-property.util.js","sourceRoot":"","sources":["../../../src/common/utils/api-property.util.ts"],"names":[],"mappings":";;;AAAA,6CAAkE;AAClE,yDAAgE;AAChE,qCAAmC;
|
|
1
|
+
{"version":3,"file":"api-property.util.js","sourceRoot":"","sources":["../../../src/common/utils/api-property.util.ts"],"names":[],"mappings":"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"}
|