@foxiko/nest-common 0.2.9 → 0.2.10
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.
|
@@ -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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"}
|