@goatlab/fluent 0.7.38 → 0.7.40

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.
Files changed (260) hide show
  1. package/dist/BaseConnector.d.ts +112 -0
  2. package/dist/BaseConnector.js +343 -0
  3. package/dist/BaseConnector.js.map +1 -0
  4. package/dist/Fluent.d.ts +11 -0
  5. package/dist/Fluent.js +27 -0
  6. package/dist/Fluent.js.map +1 -0
  7. package/dist/FluentConnectorInterface.d.ts +17 -0
  8. package/dist/FluentConnectorInterface.js +3 -0
  9. package/dist/FluentConnectorInterface.js.map +1 -0
  10. package/dist/FluentEntity.d.ts +7 -0
  11. package/dist/FluentEntity.js +29 -0
  12. package/dist/FluentEntity.js.map +1 -0
  13. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +123 -0
  14. package/dist/TypeOrmConnector/TypeOrmConnector.js +760 -0
  15. package/dist/TypeOrmConnector/TypeOrmConnector.js.map +1 -0
  16. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +12 -0
  17. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +167 -0
  18. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js.map +1 -0
  19. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +11 -0
  20. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +52 -0
  21. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js.map +1 -0
  22. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.d.ts +4 -0
  23. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.js +20 -0
  24. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.js.map +1 -0
  25. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +7 -0
  26. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +19 -0
  27. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js.map +1 -0
  28. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +11 -0
  29. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +173 -0
  30. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js.map +1 -0
  31. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +13 -0
  32. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +207 -0
  33. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js.map +1 -0
  34. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +11 -0
  35. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +214 -0
  36. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js.map +1 -0
  37. package/dist/TypeOrmConnector/util/clearEmpties.d.ts +7 -0
  38. package/dist/TypeOrmConnector/util/clearEmpties.js +33 -0
  39. package/dist/TypeOrmConnector/util/clearEmpties.js.map +1 -0
  40. package/dist/TypeOrmConnector/util/extractConditions.d.ts +12 -0
  41. package/dist/TypeOrmConnector/util/extractConditions.js +89 -0
  42. package/dist/TypeOrmConnector/util/extractConditions.js.map +1 -0
  43. package/dist/TypeOrmConnector/util/extractInclude.d.ts +2 -0
  44. package/dist/TypeOrmConnector/util/extractInclude.js +26 -0
  45. package/dist/TypeOrmConnector/util/extractInclude.js.map +1 -0
  46. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +12 -0
  47. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.js +49 -0
  48. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.js.map +1 -0
  49. package/dist/TypeOrmConnector/util/extractOrderBy.d.ts +2 -0
  50. package/dist/TypeOrmConnector/util/extractOrderBy.js +24 -0
  51. package/dist/TypeOrmConnector/util/extractOrderBy.js.map +1 -0
  52. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +19 -0
  53. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.js +27 -0
  54. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.js.map +1 -0
  55. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +6 -0
  56. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +29 -0
  57. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.js.map +1 -0
  58. package/dist/TypeOrmConnector/util/isAnyObject.d.ts +1 -0
  59. package/dist/TypeOrmConnector/util/isAnyObject.js +8 -0
  60. package/dist/TypeOrmConnector/util/isAnyObject.js.map +1 -0
  61. package/dist/TypeOrmConnector/util/nestQueryResults.d.ts +2 -0
  62. package/dist/TypeOrmConnector/util/nestQueryResults.js +38 -0
  63. package/dist/TypeOrmConnector/util/nestQueryResults.js.map +1 -0
  64. package/dist/core/Loopback/build-schema.d.ts +148 -0
  65. package/dist/core/Loopback/build-schema.js +443 -0
  66. package/dist/core/Loopback/build-schema.js.map +1 -0
  67. package/dist/core/Loopback/common-types.d.ts +96 -0
  68. package/dist/core/Loopback/common-types.js +24 -0
  69. package/dist/core/Loopback/common-types.js.map +1 -0
  70. package/dist/core/Loopback/json-to-schema.d.ts +41 -0
  71. package/dist/core/Loopback/json-to-schema.js +113 -0
  72. package/dist/core/Loopback/json-to-schema.js.map +1 -0
  73. package/dist/core/Loopback/metadata.d.ts +16 -0
  74. package/dist/core/Loopback/metadata.js +49 -0
  75. package/dist/core/Loopback/metadata.js.map +1 -0
  76. package/dist/core/Loopback/model.d.ts +233 -0
  77. package/dist/core/Loopback/model.js +387 -0
  78. package/dist/core/Loopback/model.js.map +1 -0
  79. package/dist/core/Loopback/query.d.ts +394 -0
  80. package/dist/core/Loopback/query.js +482 -0
  81. package/dist/core/Loopback/query.js.map +1 -0
  82. package/dist/core/Loopback/relation.types.d.ts +141 -0
  83. package/dist/core/Loopback/relation.types.js +18 -0
  84. package/dist/core/Loopback/relation.types.js.map +1 -0
  85. package/dist/core/Loopback/type-resolver.d.ts +42 -0
  86. package/dist/core/Loopback/type-resolver.js +60 -0
  87. package/dist/core/Loopback/type-resolver.js.map +1 -0
  88. package/dist/core/Loopback/type.d.ts +38 -0
  89. package/dist/core/Loopback/type.js +7 -0
  90. package/dist/core/Loopback/type.js.map +1 -0
  91. package/dist/core/Nestjs/applyDecorators.d.ts +10 -0
  92. package/dist/core/Nestjs/applyDecorators.js +26 -0
  93. package/dist/core/Nestjs/applyDecorators.js.map +1 -0
  94. package/dist/core/Nestjs/types/common.d.ts +16 -0
  95. package/dist/core/Nestjs/types/common.js +38 -0
  96. package/dist/core/Nestjs/types/common.js.map +1 -0
  97. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +1 -0
  98. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +8 -0
  99. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js.map +1 -0
  100. package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +27 -0
  101. package/dist/core/Nestjs/types/decorators/api-property.decorator.js +66 -0
  102. package/dist/core/Nestjs/types/decorators/api-property.decorator.js.map +1 -0
  103. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +5 -0
  104. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +136 -0
  105. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js.map +1 -0
  106. package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +4 -0
  107. package/dist/core/Nestjs/types/decorators/args-type.decorator.js +24 -0
  108. package/dist/core/Nestjs/types/decorators/args-type.decorator.js.map +1 -0
  109. package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +2 -0
  110. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +55 -0
  111. package/dist/core/Nestjs/types/decorators/create-property.decorator.js.map +1 -0
  112. package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +4 -0
  113. package/dist/core/Nestjs/types/decorators/directive.decorator.js +39 -0
  114. package/dist/core/Nestjs/types/decorators/directive.decorator.js.map +1 -0
  115. package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +4 -0
  116. package/dist/core/Nestjs/types/decorators/extensions.decorator.js +28 -0
  117. package/dist/core/Nestjs/types/decorators/extensions.decorator.js.map +1 -0
  118. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +48 -0
  119. package/dist/core/Nestjs/types/decorators/field.decorator.js +63 -0
  120. package/dist/core/Nestjs/types/decorators/field.decorator.js.map +1 -0
  121. package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +25 -0
  122. package/dist/core/Nestjs/types/decorators/input-type.decorator.js +29 -0
  123. package/dist/core/Nestjs/types/decorators/input-type.decorator.js.map +1 -0
  124. package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +33 -0
  125. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +35 -0
  126. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js.map +1 -0
  127. package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +3 -0
  128. package/dist/core/Nestjs/types/decorators/partial-type.helper.js +46 -0
  129. package/dist/core/Nestjs/types/decorators/partial-type.helper.js.map +1 -0
  130. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +3 -0
  131. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +10 -0
  132. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js.map +1 -0
  133. package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +3 -0
  134. package/dist/core/Nestjs/types/errors/directive-parsing.error.js +10 -0
  135. package/dist/core/Nestjs/types/errors/directive-parsing.error.js.map +1 -0
  136. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +3 -0
  137. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +10 -0
  138. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js.map +1 -0
  139. package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +3 -0
  140. package/dist/core/Nestjs/types/errors/undefined-type.error.js +11 -0
  141. package/dist/core/Nestjs/types/errors/undefined-type.error.js.map +1 -0
  142. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +3 -0
  143. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +11 -0
  144. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js.map +1 -0
  145. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +11 -0
  146. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +3 -0
  147. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js.map +1 -0
  148. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +5 -0
  149. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +3 -0
  150. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js.map +1 -0
  151. package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +11 -0
  152. package/dist/core/Nestjs/types/interfaces/complexity.interface.js +3 -0
  153. package/dist/core/Nestjs/types/interfaces/complexity.interface.js.map +1 -0
  154. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +15 -0
  155. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +3 -0
  156. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js.map +1 -0
  157. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +239 -0
  158. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +7 -0
  159. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js.map +1 -0
  160. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +2 -0
  161. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +3 -0
  162. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js.map +1 -0
  163. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +5 -0
  164. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +3 -0
  165. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js.map +1 -0
  166. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +9 -0
  167. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +3 -0
  168. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js.map +1 -0
  169. package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +5 -0
  170. package/dist/core/Nestjs/types/interfaces/type-options.interface.js +3 -0
  171. package/dist/core/Nestjs/types/interfaces/type-options.interface.js.map +1 -0
  172. package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +15 -0
  173. package/dist/core/Nestjs/types/lazy-metadata.storage.js +68 -0
  174. package/dist/core/Nestjs/types/lazy-metadata.storage.js.map +1 -0
  175. package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +11 -0
  176. package/dist/core/Nestjs/types/metadata/class.metadata.js +3 -0
  177. package/dist/core/Nestjs/types/metadata/class.metadata.js.map +1 -0
  178. package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +8 -0
  179. package/dist/core/Nestjs/types/metadata/directive.metadata.js +3 -0
  180. package/dist/core/Nestjs/types/metadata/directive.metadata.js.map +1 -0
  181. package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +11 -0
  182. package/dist/core/Nestjs/types/metadata/enum.metadata.js +3 -0
  183. package/dist/core/Nestjs/types/metadata/enum.metadata.js.map +1 -0
  184. package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +8 -0
  185. package/dist/core/Nestjs/types/metadata/extensions.metadata.js +3 -0
  186. package/dist/core/Nestjs/types/metadata/extensions.metadata.js.map +1 -0
  187. package/dist/core/Nestjs/types/metadata/index.d.ts +8 -0
  188. package/dist/core/Nestjs/types/metadata/index.js +12 -0
  189. package/dist/core/Nestjs/types/metadata/index.js.map +1 -0
  190. package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +6 -0
  191. package/dist/core/Nestjs/types/metadata/interface.metadata.js +3 -0
  192. package/dist/core/Nestjs/types/metadata/interface.metadata.js.map +1 -0
  193. package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +4 -0
  194. package/dist/core/Nestjs/types/metadata/object-type.metadata.js +3 -0
  195. package/dist/core/Nestjs/types/metadata/object-type.metadata.js.map +1 -0
  196. package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +18 -0
  197. package/dist/core/Nestjs/types/metadata/param.metadata.js +3 -0
  198. package/dist/core/Nestjs/types/metadata/param.metadata.js.map +1 -0
  199. package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +20 -0
  200. package/dist/core/Nestjs/types/metadata/property.metadata.js +3 -0
  201. package/dist/core/Nestjs/types/metadata/property.metadata.js.map +1 -0
  202. package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +34 -0
  203. package/dist/core/Nestjs/types/metadata/resolver.metadata.js +3 -0
  204. package/dist/core/Nestjs/types/metadata/resolver.metadata.js.map +1 -0
  205. package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +9 -0
  206. package/dist/core/Nestjs/types/metadata/union.metadata.js +3 -0
  207. package/dist/core/Nestjs/types/metadata/union.metadata.js.map +1 -0
  208. package/dist/core/Nestjs/types/object-type.decorator.d.ts +32 -0
  209. package/dist/core/Nestjs/types/object-type.decorator.js +33 -0
  210. package/dist/core/Nestjs/types/object-type.decorator.js.map +1 -0
  211. package/dist/core/Nestjs/types/omit-type.d.ts +2 -0
  212. package/dist/core/Nestjs/types/omit-type.js +34 -0
  213. package/dist/core/Nestjs/types/omit-type.js.map +1 -0
  214. package/dist/core/Nestjs/types/reflection.utils.d.ts +15 -0
  215. package/dist/core/Nestjs/types/reflection.utils.js +65 -0
  216. package/dist/core/Nestjs/types/reflection.utils.js.map +1 -0
  217. package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +20 -0
  218. package/dist/core/Nestjs/types/set-metadata.decorator.js +33 -0
  219. package/dist/core/Nestjs/types/set-metadata.decorator.js.map +1 -0
  220. package/dist/core/Nestjs/types/type-metadata.storage.d.ts +73 -0
  221. package/dist/core/Nestjs/types/type-metadata.storage.js +351 -0
  222. package/dist/core/Nestjs/types/type-metadata.storage.js.map +1 -0
  223. package/dist/core/Nestjs/types/utils/enum.utils.d.ts +3 -0
  224. package/dist/core/Nestjs/types/utils/enum.utils.js +31 -0
  225. package/dist/core/Nestjs/types/utils/enum.utils.js.map +1 -0
  226. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +13 -0
  227. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +72 -0
  228. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js.map +1 -0
  229. package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +2 -0
  230. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +38 -0
  231. package/dist/core/Nestjs/types/utils/mapped-types.utils.js.map +1 -0
  232. package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +6 -0
  233. package/dist/core/Nestjs/types/utils/model-properties-accessor.js +37 -0
  234. package/dist/core/Nestjs/types/utils/model-properties-accessor.js.map +1 -0
  235. package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +2 -0
  236. package/dist/core/Nestjs/types/utils/type-helpers.utils.js +16 -0
  237. package/dist/core/Nestjs/types/utils/type-helpers.utils.js.map +1 -0
  238. package/dist/core/types.d.ts +23 -0
  239. package/dist/core/types.js +31 -0
  240. package/dist/core/types.js.map +1 -0
  241. package/dist/decorators.d.ts +92 -0
  242. package/dist/decorators.js +162 -0
  243. package/dist/decorators.js.map +1 -0
  244. package/dist/generatorDatasource.d.ts +2 -0
  245. package/dist/generatorDatasource.js +13 -0
  246. package/dist/generatorDatasource.js.map +1 -0
  247. package/dist/index.d.ts +30 -0
  248. package/dist/index.js +50 -0
  249. package/dist/index.js.map +1 -0
  250. package/dist/loadRelations.d.ts +12 -0
  251. package/dist/loadRelations.js +139 -0
  252. package/dist/loadRelations.js.map +1 -0
  253. package/dist/outputKeys.d.ts +2 -0
  254. package/dist/outputKeys.js +18 -0
  255. package/dist/outputKeys.js.map +1 -0
  256. package/dist/tsconfig.tsbuildinfo +1 -0
  257. package/dist/types.d.ts +104 -0
  258. package/dist/types.js +23 -0
  259. package/dist/types.js.map +1 -0
  260. package/package.json +48 -24
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQueryBuilderWhere = void 0;
4
+ const js_utils_1 = require("@goatlab/js-utils");
5
+ const typeorm_1 = require("typeorm");
6
+ const extractConditions_1 = require("../../util/extractConditions");
7
+ const types_1 = require("../../../types");
8
+ const queryId = js_utils_1.Ids.customId('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
9
+ /**
10
+ *
11
+ * @param where
12
+ * @returns
13
+ */
14
+ const getQueryBuilderWhere = ({ where, queryAlias, queryBuilder }) => {
15
+ if (!where || Object.keys(where).length === 0) {
16
+ return queryBuilder;
17
+ }
18
+ const orConditions = (0, extractConditions_1.extractConditions)(where['OR']);
19
+ const andConditions = (0, extractConditions_1.extractConditions)(where['AND']);
20
+ const copy = js_utils_1.Objects.clone(where);
21
+ if (!!copy['AND']) {
22
+ delete copy['AND'];
23
+ }
24
+ if (!!copy['OR']) {
25
+ delete copy['OR'];
26
+ }
27
+ const rootLevelConditions = (0, extractConditions_1.extractConditions)([copy]);
28
+ queryBuilder.andWhere(new typeorm_1.Brackets(qbAnd => {
29
+ // All AND level conditions (root and AND)
30
+ for (const condition of andConditions) {
31
+ const { element, operator, value } = condition;
32
+ const customId = queryId(4);
33
+ switch (operator) {
34
+ case types_1.LogicOperator.equals:
35
+ qbAnd.andWhere(`${queryAlias}.${element} = :${element}_${customId}`, {
36
+ [`${element}_${customId}`]: value
37
+ });
38
+ break;
39
+ case types_1.LogicOperator.isNot:
40
+ qbAnd.andWhere(`${queryAlias}.${element} != :${element}_${customId}`, {
41
+ [`${element}_${customId}`]: value
42
+ });
43
+ break;
44
+ case types_1.LogicOperator.greaterThan:
45
+ qbAnd.andWhere(`${queryAlias}.${element} > :${element}_${customId}`, {
46
+ [`${element}_${customId}`]: value
47
+ });
48
+ break;
49
+ case types_1.LogicOperator.greaterOrEqualThan:
50
+ qbAnd.andWhere(`${queryAlias}.${element} >= :${element}_${customId}`, {
51
+ [`${element}_${customId}`]: value
52
+ });
53
+ break;
54
+ case types_1.LogicOperator.lessThan:
55
+ qbAnd.andWhere(`${queryAlias}.${element} < :${element}_${customId}`, {
56
+ [`${element}_${customId}`]: value
57
+ });
58
+ break;
59
+ case types_1.LogicOperator.lessOrEqualThan:
60
+ qbAnd.andWhere(`${queryAlias}.${element} <= :${element}_${customId}`, {
61
+ [`${element}_${customId}`]: value
62
+ });
63
+ break;
64
+ case types_1.LogicOperator.in:
65
+ qbAnd.andWhere(`${queryAlias}.${element} IN :${element}_${customId}`, {
66
+ [`${element}_${customId}`]: value
67
+ });
68
+ break;
69
+ case types_1.LogicOperator.notIn:
70
+ qbAnd.andWhere(`${queryAlias}.${element} NOT IN :${element}_${customId}`, {
71
+ [`${element}_${customId}`]: value
72
+ });
73
+ break;
74
+ case types_1.LogicOperator.exists:
75
+ qbAnd.andWhere(`${queryAlias}.${element} IS NOT NULL`);
76
+ break;
77
+ case types_1.LogicOperator.notExists:
78
+ qbAnd.andWhere(`${queryAlias}.${element} IS NULL`);
79
+ break;
80
+ case types_1.LogicOperator.regexp:
81
+ qbAnd.andWhere(`${queryAlias}.${element} LIKE :${element}_${customId}`, {
82
+ [`${element}_${customId}`]: value
83
+ });
84
+ break;
85
+ }
86
+ }
87
+ for (const condition of rootLevelConditions) {
88
+ const { element, operator, value } = condition;
89
+ const customId = queryId(4);
90
+ switch (operator) {
91
+ case types_1.LogicOperator.equals:
92
+ qbAnd.andWhere(`${queryAlias}.${element} = :${element}_${customId}`, {
93
+ [`${element}_${customId}`]: value
94
+ });
95
+ break;
96
+ case types_1.LogicOperator.isNot:
97
+ qbAnd.andWhere(`${queryAlias}.${element} != :${element}_${customId}`, {
98
+ [`${element}_${customId}`]: value
99
+ });
100
+ break;
101
+ case types_1.LogicOperator.greaterThan:
102
+ qbAnd.andWhere(`${queryAlias}.${element} > :${element}_${customId}`, {
103
+ [`${element}_${customId}`]: value
104
+ });
105
+ break;
106
+ case types_1.LogicOperator.greaterOrEqualThan:
107
+ qbAnd.andWhere(`${queryAlias}.${element} >= :${element}_${customId}`, {
108
+ [`${element}_${customId}`]: value
109
+ });
110
+ break;
111
+ case types_1.LogicOperator.lessThan:
112
+ qbAnd.andWhere(`${queryAlias}.${element} < :${element}_${customId}`, {
113
+ [`${element}_${customId}`]: value
114
+ });
115
+ break;
116
+ case types_1.LogicOperator.lessOrEqualThan:
117
+ qbAnd.andWhere(`${queryAlias}.${element} <= :${element}_${customId}`, {
118
+ [`${element}_${customId}`]: value
119
+ });
120
+ break;
121
+ case types_1.LogicOperator.in:
122
+ qbAnd.andWhere(`${queryAlias}.${element} IN :${element}_${customId}`, {
123
+ [`${element}_${customId}`]: value
124
+ });
125
+ break;
126
+ case types_1.LogicOperator.notIn:
127
+ qbAnd.andWhere(`${queryAlias}.${element} NOT IN :${element}_${customId}`, {
128
+ [`${element}_${customId}`]: value
129
+ });
130
+ break;
131
+ case types_1.LogicOperator.exists:
132
+ qbAnd.andWhere(`${queryAlias}.${element} IS NOT NULL`);
133
+ break;
134
+ case types_1.LogicOperator.notExists:
135
+ qbAnd.andWhere(`${queryAlias}.${element} IS NULL`);
136
+ break;
137
+ case types_1.LogicOperator.regexp:
138
+ qbAnd.andWhere(`${queryAlias}.${element} LIKE :${element}_${customId}`, {
139
+ [`${element}_${customId}`]: value
140
+ });
141
+ break;
142
+ }
143
+ }
144
+ qbAnd.andWhere(new typeorm_1.Brackets(qbOr => {
145
+ for (const condition of orConditions) {
146
+ const { element, operator, value } = condition;
147
+ const customId = queryId(4);
148
+ switch (operator) {
149
+ case types_1.LogicOperator.equals:
150
+ qbOr.andWhere(`${queryAlias}.${element} = :${element}_${customId}`, {
151
+ [`${element}_${customId}`]: value
152
+ });
153
+ break;
154
+ case types_1.LogicOperator.isNot:
155
+ qbOr.andWhere(`${queryAlias}.${element} != :${element}_${customId}`, {
156
+ [`${element}_${customId}`]: value
157
+ });
158
+ break;
159
+ case types_1.LogicOperator.greaterThan:
160
+ qbOr.andWhere(`${queryAlias}.${element} > :${element}_${customId}`, {
161
+ [`${element}_${customId}`]: value
162
+ });
163
+ break;
164
+ case types_1.LogicOperator.greaterOrEqualThan:
165
+ qbOr.andWhere(`${queryAlias}.${element} >= :${element}_${customId}`, {
166
+ [`${element}_${customId}`]: value
167
+ });
168
+ break;
169
+ case types_1.LogicOperator.lessThan:
170
+ qbOr.andWhere(`${queryAlias}.${element} < :${element}_${customId}`, {
171
+ [`${element}_${customId}`]: value
172
+ });
173
+ break;
174
+ case types_1.LogicOperator.lessOrEqualThan:
175
+ qbOr.andWhere(`${queryAlias}.${element} <= :${element}_${customId}`, {
176
+ [`${element}_${customId}`]: value
177
+ });
178
+ break;
179
+ case types_1.LogicOperator.in:
180
+ qbOr.andWhere(`${queryAlias}.${element} IN :${element}_${customId}`, {
181
+ [`${element}_${customId}`]: value
182
+ });
183
+ break;
184
+ case types_1.LogicOperator.notIn:
185
+ qbOr.andWhere(`${queryAlias}.${element} NOT IN :${element}_${customId}`, {
186
+ [`${element}_${customId}`]: value
187
+ });
188
+ break;
189
+ case types_1.LogicOperator.exists:
190
+ qbOr.andWhere(`${queryAlias}.${element} IS NOT NULL`);
191
+ break;
192
+ case types_1.LogicOperator.notExists:
193
+ qbOr.andWhere(`${queryAlias}.${element} IS NULL`);
194
+ break;
195
+ case types_1.LogicOperator.regexp:
196
+ qbOr.andWhere(`${queryAlias}.${element} LIKE :${element}_${customId}`, {
197
+ [`${element}_${customId}`]: value
198
+ });
199
+ break;
200
+ }
201
+ }
202
+ }));
203
+ }));
204
+ return queryBuilder;
205
+ };
206
+ exports.getQueryBuilderWhere = getQueryBuilderWhere;
207
+ //# sourceMappingURL=getQueryBuilderWhere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryBuilderWhere.js","sourceRoot":"","sources":["../../../../src/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { FindManyOptions } from 'typeorm';
2
+ import { AnyObject, FluentQuery } from '../../../types';
3
+ export interface getTypeOrmWhereParams {
4
+ where?: FluentQuery<AnyObject>['where'];
5
+ }
6
+ /**
7
+ *
8
+ * @param where
9
+ * @returns
10
+ */
11
+ export declare const getTypeOrmWhere: ({ where }: getTypeOrmWhereParams) => FindManyOptions["where"];
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTypeOrmWhere = void 0;
4
+ const js_utils_1 = require("@goatlab/js-utils");
5
+ const typeorm_1 = require("typeorm");
6
+ const clearEmpties_1 = require("../..//util/clearEmpties");
7
+ const types_1 = require("../../../types");
8
+ const extractConditions_1 = require("../../util/extractConditions");
9
+ /**
10
+ *
11
+ * @param where
12
+ * @returns
13
+ */
14
+ const getTypeOrmWhere = ({ where }) => {
15
+ if (!where || Object.keys(where).length === 0) {
16
+ return {};
17
+ }
18
+ // Every element of the array is an OR
19
+ const Filters = { where: [{}] };
20
+ const orConditions = (0, extractConditions_1.extractConditions)(where['OR']);
21
+ const andConditions = (0, extractConditions_1.extractConditions)(where['AND']);
22
+ const copy = js_utils_1.Objects.clone(where);
23
+ if (!!copy['AND']) {
24
+ delete copy['AND'];
25
+ }
26
+ if (!!copy['OR']) {
27
+ delete copy['OR'];
28
+ }
29
+ const rootLevelConditions = (0, extractConditions_1.extractConditions)([copy]);
30
+ for (const condition of andConditions) {
31
+ const { element, operator, value } = condition;
32
+ switch (operator) {
33
+ case types_1.LogicOperator.equals:
34
+ Filters.where[0] = js_utils_1.Objects.nest({
35
+ ...Filters.where[0],
36
+ ...{ [element]: (0, typeorm_1.Equal)(value) }
37
+ });
38
+ break;
39
+ case types_1.LogicOperator.isNot:
40
+ Filters.where[0] = js_utils_1.Objects.nest({
41
+ ...Filters.where[0],
42
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) }
43
+ });
44
+ break;
45
+ case types_1.LogicOperator.greaterThan:
46
+ Filters.where[0] = js_utils_1.Objects.nest({
47
+ ...Filters.where[0],
48
+ ...{ [element]: (0, typeorm_1.MoreThan)(value) }
49
+ });
50
+ break;
51
+ case types_1.LogicOperator.greaterOrEqualThan:
52
+ Filters.where[0] = js_utils_1.Objects.nest({
53
+ ...Filters.where[0],
54
+ ...{ [element]: (0, typeorm_1.MoreThanOrEqual)(value) }
55
+ });
56
+ break;
57
+ case types_1.LogicOperator.lessThan:
58
+ Filters.where[0] = js_utils_1.Objects.nest({
59
+ ...Filters.where[0],
60
+ ...{ [element]: (0, typeorm_1.LessThan)(value) }
61
+ });
62
+ break;
63
+ case types_1.LogicOperator.lessOrEqualThan:
64
+ Filters.where[0] = js_utils_1.Objects.nest({
65
+ ...Filters.where[0],
66
+ ...{ [element]: (0, typeorm_1.LessThanOrEqual)(value) }
67
+ });
68
+ break;
69
+ case types_1.LogicOperator.in:
70
+ Filters.where[0] = js_utils_1.Objects.nest({
71
+ ...Filters.where[0],
72
+ ...{ [element]: (0, typeorm_1.In)(value) }
73
+ });
74
+ break;
75
+ case types_1.LogicOperator.notIn:
76
+ Filters.where[0] = js_utils_1.Objects.nest({
77
+ ...Filters.where[0],
78
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) }
79
+ });
80
+ break;
81
+ case types_1.LogicOperator.exists:
82
+ Filters.where[0] = js_utils_1.Objects.nest({
83
+ ...Filters.where[0],
84
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) }
85
+ });
86
+ break;
87
+ case types_1.LogicOperator.notExists:
88
+ Filters.where[0] = js_utils_1.Objects.nest({
89
+ ...Filters.where[0],
90
+ ...{ [element]: (0, typeorm_1.IsNull)() }
91
+ });
92
+ break;
93
+ case types_1.LogicOperator.regexp:
94
+ Filters.where[0] = js_utils_1.Objects.nest({
95
+ ...Filters.where[0],
96
+ ...{ [element]: (0, typeorm_1.Like)(value) }
97
+ });
98
+ break;
99
+ }
100
+ }
101
+ for (const condition of rootLevelConditions) {
102
+ const { element, operator, value } = condition;
103
+ switch (operator) {
104
+ case types_1.LogicOperator.equals:
105
+ Filters.where[0] = js_utils_1.Objects.nest({
106
+ ...Filters.where[0],
107
+ ...{ [element]: (0, typeorm_1.Equal)(value) }
108
+ });
109
+ break;
110
+ case types_1.LogicOperator.isNot:
111
+ Filters.where[0] = js_utils_1.Objects.nest({
112
+ ...Filters.where[0],
113
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) }
114
+ });
115
+ break;
116
+ case types_1.LogicOperator.greaterThan:
117
+ Filters.where[0] = js_utils_1.Objects.nest({
118
+ ...Filters.where[0],
119
+ ...{ [element]: (0, typeorm_1.MoreThan)(value) }
120
+ });
121
+ break;
122
+ case types_1.LogicOperator.greaterOrEqualThan:
123
+ Filters.where[0] = js_utils_1.Objects.nest({
124
+ ...Filters.where[0],
125
+ ...{ [element]: (0, typeorm_1.MoreThanOrEqual)(value) }
126
+ });
127
+ break;
128
+ case types_1.LogicOperator.lessThan:
129
+ Filters.where[0] = js_utils_1.Objects.nest({
130
+ ...Filters.where[0],
131
+ ...{ [element]: (0, typeorm_1.LessThan)(value) }
132
+ });
133
+ break;
134
+ case types_1.LogicOperator.lessOrEqualThan:
135
+ Filters.where[0] = js_utils_1.Objects.nest({
136
+ ...Filters.where[0],
137
+ ...{ [element]: (0, typeorm_1.LessThanOrEqual)(value) }
138
+ });
139
+ break;
140
+ case types_1.LogicOperator.in:
141
+ Filters.where[0] = js_utils_1.Objects.nest({
142
+ ...Filters.where[0],
143
+ ...{ [element]: (0, typeorm_1.In)(value) }
144
+ });
145
+ break;
146
+ case types_1.LogicOperator.notIn:
147
+ Filters.where[0] = js_utils_1.Objects.nest({
148
+ ...Filters.where[0],
149
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) }
150
+ });
151
+ break;
152
+ case types_1.LogicOperator.exists:
153
+ Filters.where[0] = js_utils_1.Objects.nest({
154
+ ...Filters.where[0],
155
+ ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) }
156
+ });
157
+ break;
158
+ case types_1.LogicOperator.notExists:
159
+ Filters.where[0] = js_utils_1.Objects.nest({
160
+ ...Filters.where[0],
161
+ ...{ [element]: (0, typeorm_1.IsNull)() }
162
+ });
163
+ break;
164
+ case types_1.LogicOperator.regexp:
165
+ Filters.where[0] = js_utils_1.Objects.nest({
166
+ ...Filters.where[0],
167
+ ...{ [element]: (0, typeorm_1.Like)(value) }
168
+ });
169
+ break;
170
+ }
171
+ }
172
+ for (const condition of orConditions) {
173
+ const { element, operator, value } = condition;
174
+ switch (operator) {
175
+ case types_1.LogicOperator.equals:
176
+ Filters.where.push({ [element]: (0, typeorm_1.Equal)(value) });
177
+ break;
178
+ case types_1.LogicOperator.isNot:
179
+ Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) });
180
+ break;
181
+ case types_1.LogicOperator.greaterThan:
182
+ Filters.where.push({ [element]: (0, typeorm_1.MoreThan)(value) });
183
+ break;
184
+ case types_1.LogicOperator.greaterOrEqualThan:
185
+ Filters.where.push({ [element]: (0, typeorm_1.MoreThanOrEqual)(value) });
186
+ break;
187
+ case types_1.LogicOperator.lessThan:
188
+ Filters.where.push({ [element]: (0, typeorm_1.LessThan)(value) });
189
+ break;
190
+ case types_1.LogicOperator.lessOrEqualThan:
191
+ Filters.where.push({ [element]: (0, typeorm_1.LessThanOrEqual)(value) });
192
+ break;
193
+ case types_1.LogicOperator.in:
194
+ Filters.where.push({ [element]: (0, typeorm_1.In)(value) });
195
+ break;
196
+ case types_1.LogicOperator.notIn:
197
+ Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) });
198
+ break;
199
+ case types_1.LogicOperator.exists:
200
+ Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) });
201
+ break;
202
+ case types_1.LogicOperator.notExists:
203
+ Filters.where.push({ [element]: (0, typeorm_1.IsNull)() });
204
+ break;
205
+ case types_1.LogicOperator.regexp:
206
+ Filters.where.push({ [element]: (0, typeorm_1.Like)(value) });
207
+ break;
208
+ }
209
+ }
210
+ const filtered = (0, clearEmpties_1.clearEmpties)(Filters.where);
211
+ return filtered;
212
+ };
213
+ exports.getTypeOrmWhere = getTypeOrmWhere;
214
+ //# sourceMappingURL=getTypeOrmWhere.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTypeOrmWhere.js","sourceRoot":"","sources":["../../../../src/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Deeply removes all empty and nullish values from a
3
+ * given object
4
+ * @param object
5
+ * @returns
6
+ */
7
+ export declare const clearEmpties: (object: any) => any;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clearEmpties = void 0;
4
+ const bson_1 = require("bson");
5
+ /**
6
+ * Deeply removes all empty and nullish values from a
7
+ * given object
8
+ * @param object
9
+ * @returns
10
+ */
11
+ const clearEmpties = object => {
12
+ Object.entries(object).forEach(([k, v]) => {
13
+ if (v && typeof v === 'object')
14
+ (0, exports.clearEmpties)(v);
15
+ if ((v && typeof v === 'object' && !Object.keys(v).length) ||
16
+ v === null ||
17
+ v === undefined ||
18
+ v.length === 0) {
19
+ if (Array.isArray(object)) {
20
+ // Do not remove Object ID
21
+ if (!(object[k] instanceof bson_1.ObjectId)) {
22
+ object.splice(k, 1);
23
+ }
24
+ }
25
+ else if (!(v instanceof Date) && !(v instanceof bson_1.ObjectId)) {
26
+ delete object[k];
27
+ }
28
+ }
29
+ });
30
+ return object;
31
+ };
32
+ exports.clearEmpties = clearEmpties;
33
+ //# sourceMappingURL=clearEmpties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clearEmpties.js","sourceRoot":"","sources":["../../../src/TypeOrmConnector/util/clearEmpties.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAE/B;;;;;GAKG;AACI,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE;IACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAa,EAAE,EAAE;QACpD,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,IAAA,oBAAY,EAAC,CAAC,CAAC,CAAA;QAC/C,IACE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtD,CAAC,KAAK,IAAI;YACV,CAAC,KAAK,SAAS;YACf,CAAC,CAAC,MAAM,KAAK,CAAC,EACd,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,0BAA0B;gBAC1B,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,eAAQ,CAAC,EAAE,CAAC;oBACrC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBACrB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,eAAQ,CAAC,EAAE,CAAC;gBAC5D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AApBY,QAAA,YAAY,gBAoBxB"}
@@ -0,0 +1,12 @@
1
+ import { FluentQuery, LogicOperator, Primitives, PrimitivesArray } from '../../types';
2
+ /**
3
+ * Transforms the nested object WHERE clause into an
4
+ * Array of clearly defined conditions
5
+ * @param conditions
6
+ * @returns
7
+ */
8
+ export declare const extractConditions: (conditions: FluentQuery<any>["where"][]) => {
9
+ operator: LogicOperator;
10
+ element: string;
11
+ value: Primitives | PrimitivesArray;
12
+ }[];
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractConditions = void 0;
4
+ const js_utils_1 = require("@goatlab/js-utils");
5
+ const types_1 = require("../../types");
6
+ const isAnyObject_1 = require("./isAnyObject");
7
+ /**
8
+ * Transforms the nested object WHERE clause into an
9
+ * Array of clearly defined conditions
10
+ * @param conditions
11
+ * @returns
12
+ */
13
+ const extractConditions = (conditions) => {
14
+ const accumulatedClauses = [];
15
+ if (!conditions) {
16
+ return accumulatedClauses;
17
+ }
18
+ for (const clause of conditions) {
19
+ if (!clause) {
20
+ continue;
21
+ }
22
+ for (const el of Object.keys(clause)) {
23
+ const value = clause[el];
24
+ if ((0, isAnyObject_1.isAnyObject)(value)) {
25
+ const initialKey = el;
26
+ const flatten = js_utils_1.Objects.flatten(value);
27
+ for (const key of Object.keys(flatten)) {
28
+ // Remove .# from keys when we have an array in the flattened object
29
+ const transformedKey = key.replace(new RegExp('.[0-9]', 'g'), '');
30
+ if (types_1.LogicOperator[transformedKey]) {
31
+ if (types_1.LogicOperator[transformedKey] === types_1.LogicOperator.in ||
32
+ types_1.LogicOperator[transformedKey] === types_1.LogicOperator.notIn) {
33
+ // The IN operator accepts an array, therefore we need the full array as a value
34
+ accumulatedClauses.push({
35
+ operator: types_1.LogicOperator[transformedKey],
36
+ element: `${initialKey}`,
37
+ value: value[transformedKey]
38
+ });
39
+ }
40
+ else {
41
+ accumulatedClauses.push({
42
+ operator: types_1.LogicOperator[transformedKey],
43
+ element: `${initialKey}`,
44
+ value: flatten[key]
45
+ });
46
+ }
47
+ }
48
+ else if (transformedKey.includes('.')) {
49
+ const op = key.split('.').slice(-1).pop();
50
+ if (!op) {
51
+ continue;
52
+ }
53
+ if (types_1.LogicOperator[op]) {
54
+ accumulatedClauses.push({
55
+ operator: types_1.LogicOperator[op],
56
+ element: `${initialKey}.${key.replace(`.${op}`, '')}`,
57
+ value: flatten[key]
58
+ });
59
+ }
60
+ else {
61
+ accumulatedClauses.push({
62
+ operator: types_1.LogicOperator.equals,
63
+ element: `${initialKey}.${key}`,
64
+ value: flatten[key]
65
+ });
66
+ }
67
+ }
68
+ else {
69
+ accumulatedClauses.push({
70
+ operator: types_1.LogicOperator.equals,
71
+ element: `${initialKey}.${transformedKey}`,
72
+ value: flatten[key]
73
+ });
74
+ }
75
+ }
76
+ }
77
+ else {
78
+ accumulatedClauses.push({
79
+ operator: types_1.LogicOperator.equals,
80
+ element: el,
81
+ value
82
+ });
83
+ }
84
+ }
85
+ }
86
+ return accumulatedClauses.filter((v, i, a) => a.findIndex(v2 => JSON.stringify(v2) === JSON.stringify(v)) === i);
87
+ };
88
+ exports.extractConditions = extractConditions;
89
+ //# sourceMappingURL=extractConditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractConditions.js","sourceRoot":"","sources":["../../../src/TypeOrmConnector/util/extractConditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { AnyObject, FluentQuery } from '../../types';
2
+ export declare const extractInclude: <T>(include?: FluentQuery<T>["include"]) => AnyObject | undefined;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractInclude = void 0;
4
+ const js_utils_1 = require("@goatlab/js-utils");
5
+ const extractInclude = (include) => {
6
+ if (!include) {
7
+ return undefined;
8
+ }
9
+ const flatten = js_utils_1.Objects.flatten(include);
10
+ const extractedInclude = {};
11
+ for (const key of Object.keys(flatten)) {
12
+ if (key.includes('include')) {
13
+ const parsedKey = key.split('.include');
14
+ let acc = '';
15
+ for (const entity of parsedKey) {
16
+ extractedInclude[`${acc}${entity}`] = true;
17
+ acc = acc + entity;
18
+ }
19
+ continue;
20
+ }
21
+ extractedInclude[key] = true;
22
+ }
23
+ return extractedInclude;
24
+ };
25
+ exports.extractInclude = extractInclude;
26
+ //# sourceMappingURL=extractInclude.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractInclude.js","sourceRoot":"","sources":["../../../src/TypeOrmConnector/util/extractInclude.ts"],"names":[],"mappings":";;;AAAA,gDAA2C;AAGpC,MAAM,cAAc,GAAG,CAC5B,OAAmC,EACnC,EAAE;IACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,OAAO,GAAG,kBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,MAAM,gBAAgB,GAAc,EAAE,CAAA;IAEtC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YAEvC,IAAI,GAAG,GAAG,EAAE,CAAA;YACZ,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,gBAAgB,CAAC,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAA;gBAC1C,GAAG,GAAG,GAAG,GAAG,MAAM,CAAA;YACpB,CAAC;YAED,SAAQ;QACV,CAAC;QAED,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IAC9B,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AA1BY,QAAA,cAAc,kBA0B1B"}