@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 = { type: () => itemType };
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":"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"}
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;AACnC,0CAAkD;AAElD,MAAa,eAAe;IACxB,MAAM,CAAC,eAAe,CAAmC,MAAS,EAAE,UAAU,IAAI,GAAG,EAAO;QACxF,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,OAAO;QACX,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,MAAM,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,sBAAe,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAEjE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC5E,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,gBAAgB;aACX,OAAO,CAAC,CAAC,QAAa,EAAE,EAAE;;YACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YAC3C,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE1B,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC9E,IAAI,OAAO,GAAG,IAAI,KAAK,KAAK,CAAC;YAC7B,IAAI,QAAQ,GAAG,IAAI,CAAC;YAEpB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/E,IAAI,QAAQ,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;gBACpC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1C,IAAI,SAAS,EAAE,CAAC;oBACZ,QAAQ,GAAG,SAAS,CAAC;gBACzB,CAAC;YACL,CAAC;YAED,IACI,QAAQ;gBACR,OAAO,QAAQ,KAAK,UAAU;gBAC9B,QAAQ,KAAK,MAAM;gBACnB,QAAQ,KAAK,MAAM;gBACnB,QAAQ,KAAK,OAAO;gBACpB,QAAQ,KAAK,IAAI;gBACjB,QAAQ,KAAK,kBAAQ;gBACrB,QAAQ,KAAK,KAAK,EACpB,CAAC;gBACC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,4BAA4B,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC;gBACrF,IAAI,QAAQ,GAAG,IAAI,CAAC;gBAEpB,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;oBACpC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC3C,QAAQ,GAAG,KAAK,CAAC;oBACrB,CAAC;gBACL,CAAC;gBAED,IAAI,QAAQ,KAAK,kBAAQ,EAAE,CAAC;oBACxB,IAAI,OAAO,EAAE,CAAC;wBACV,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAoB,EAAE,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;wBAC3G,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,mCAAI,YAAY,CAAC,CAAC;oBAC1H,CAAC;yBAAM,CAAC;wBACJ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAkB,EAAE,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;wBAC5F,IAAA,qBAAW,EAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,mCAAI,YAAY,CAAC,CAAC;oBAC3G,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,OAAO,GAAuB;wBAChC,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ;wBACpB,QAAQ,EAAE,QAAQ;qBACrB,CAAC;oBACF,IAAI,OAAO,EAAE,CAAC;wBACV,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBACD,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,mCAAI,YAAY,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;IAEX,CAAC;CACJ;AA7ED,0CA6EC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxiko/nest-common",
3
- "version": "0.2.9",
3
+ "version": "0.2.10",
4
4
  "description": "",
5
5
  "main": "./build/index.js",
6
6
  "typings": "./build/index.d.ts",