@steroidsjs/nest 1.3.29 → 1.3.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steroidsjs/nest",
3
- "version": "1.3.29",
3
+ "version": "1.3.30",
4
4
  "scripts": {
5
5
  "build": "tsc && copyfiles ./{package.json,LICENSE,README.md} dist/",
6
6
  "watch": "tsc -p tsconfig-debug.json",
@@ -23,7 +23,7 @@ function StringField(options = {}) {
23
23
  each: options.isArray,
24
24
  message: 'Должна быть строка',
25
25
  }),
26
- (0, class_validator_1.IsOptional)(),
26
+ !options.required && (0, class_validator_1.IsOptional)(),
27
27
  typeof options.min === 'number' && (0, class_validator_1.MinLength)(options.min),
28
28
  typeof options.max === 'number' && (0, class_validator_1.MaxLength)(options.max),
29
29
  ].filter(Boolean));
@@ -1 +1 @@
1
- {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/StringField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2E;AAC3E,2CAAyD;AAMzD,SAAgB,WAAW,CAAC,UAA+B,EAAE;IACzD,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,0BAAQ,EAAC;YACL,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,OAAO,EAAE,oBAAoB;SAChC,CAAC;QACF,IAAA,4BAAU,GAAE;QACZ,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;QACzD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;KAC5D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AAtBD,kCAsBC"}
1
+ {"version":3,"file":"StringField.js","sourceRoot":"","sources":["../../../../../src/infrastructure/decorators/fields/StringField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA2E;AAC3E,2CAAyD;AAMzD,SAAgB,WAAW,CAAC,UAA+B,EAAE;IACzD,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,EAAC,OAAO,EAAE;YACf,aAAa,EAAE,aAAa;YAC5B,OAAO,EAAE,QAAQ;YACjB,MAAM,EAAE,QAAQ;SACnB,CAAC;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,OAAO,CAAC,GAAG;YACnB,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,IAAA,0BAAQ,EAAC;YACL,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,OAAO,EAAE,oBAAoB;SAChC,CAAC;QACF,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,GAAE;QACjC,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;QACzD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,2BAAS,EAAC,OAAO,CAAC,GAAG,CAAC;KAC5D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AAtBD,kCAsBC"}
@@ -31,34 +31,44 @@ class SearchQuery {
31
31
  dbQuery.andWhere(ConditionHelper_1.ConditionHelper.toTypeOrm(searchQuery.condition));
32
32
  }
33
33
  }
34
- static prepareRelations(dbQuery, relations, parentPrefix, parentTable) {
35
- relations.forEach(relation => {
36
- let fieldOptions;
37
- const relationFullPath = [...parentPrefix.split('.'), ...relation.split('.')];
38
- const relationRelativePath = relation.replace(parentPrefix, '').split('.');
39
- const currentRelationField = relationRelativePath[0];
40
- if (relationRelativePath.length > 1) {
41
- fieldOptions = (0, BaseField_1.getFieldOptions)(parentTable, currentRelationField);
42
- relationRelativePath.splice(0, 1);
43
- const childRelationRelativePath = relationRelativePath.join('.');
44
- SearchQuery.prepareRelations(dbQuery, [childRelationRelativePath], `${parentPrefix}.${currentRelationField}`, fieldOptions.relationClass());
34
+ static prepareRelations(dbQuery, relationsWithAliases, rootPrefix, rootClass) {
35
+ const relationToAliasMap = {};
36
+ const relations = [];
37
+ relationsWithAliases.forEach(relationWithAlias => {
38
+ relationWithAlias = rootPrefix + '.' + relationWithAlias;
39
+ const [relation, alias] = relationWithAlias.split(' ');
40
+ relationToAliasMap[relation] = alias || relation.split('.').join('_');
41
+ relations.push(relation);
42
+ let path;
43
+ relation.split('.').forEach(name => {
44
+ path = [path, name].filter(Boolean).join('.');
45
+ if (!relationToAliasMap[path]) {
46
+ relationToAliasMap[path] = path.split('.').join('_');
47
+ if (path !== rootPrefix) {
48
+ relations.push(path);
49
+ }
50
+ }
51
+ });
52
+ });
53
+ const classesMap = {
54
+ [rootPrefix]: rootClass,
55
+ };
56
+ relations
57
+ .sort()
58
+ .forEach(path => {
59
+ const parentPath = path.split('.').slice(0, -1).join('.');
60
+ const relationName = path.split('.').slice(-1).join('.');
61
+ const options = (0, BaseField_1.getFieldOptions)(classesMap[parentPath], relationName);
62
+ if (options.appType === 'relation') {
63
+ classesMap[path] = options.relationClass();
64
+ }
65
+ const property = relationToAliasMap[parentPath] + '.' + relationName;
66
+ const alias = relationToAliasMap[path];
67
+ if (options.relationName) {
68
+ dbQuery.loadRelationIdAndMap(property, relationToAliasMap[parentPath] + '.' + options.relationName);
45
69
  }
46
70
  else {
47
- fieldOptions = (0, BaseField_1.getFieldOptions)(parentTable, currentRelationField);
48
- if (!fieldOptions) {
49
- throw new Error('Not found meta data for relation "' + currentRelationField
50
- + '" for table "' + parentTable + '"');
51
- }
52
- relationFullPath.pop();
53
- const parentAlias = relationFullPath.join('_');
54
- switch (fieldOptions.appType) {
55
- case 'relationId':
56
- dbQuery.loadRelationIdAndMap(`${parentAlias}.${currentRelationField}`, `${parentAlias}.${fieldOptions.relationName}`);
57
- break;
58
- case 'relation':
59
- dbQuery.leftJoinAndSelect(`${parentAlias}.${currentRelationField}`, `${parentAlias}_${currentRelationField}`);
60
- break;
61
- }
71
+ dbQuery.leftJoinAndSelect(property, alias);
62
72
  }
63
73
  });
64
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SearchQuery.js","sourceRoot":"","sources":["../../../../src/usecases/base/SearchQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SearchQuery.js","sourceRoot":"","sources":["../../../../src/usecases/base/SearchQuery.ts"],"names":[],"mappings":"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"}