@goatlab/fluent 0.7.18 → 0.7.21

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/package.json +2 -2
  2. package/dist/BaseConnector.d.ts +0 -43
  3. package/dist/BaseConnector.js +0 -257
  4. package/dist/Fluent.d.ts +0 -7
  5. package/dist/Fluent.js +0 -22
  6. package/dist/FluentConnectorInterface.d.ts +0 -17
  7. package/dist/FluentConnectorInterface.js +0 -2
  8. package/dist/FluentEntity.d.ts +0 -7
  9. package/dist/FluentEntity.js +0 -28
  10. package/dist/TypeOrmConnector/TypeOrmConnector.d.ts +0 -38
  11. package/dist/TypeOrmConnector/TypeOrmConnector.js +0 -403
  12. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +0 -7
  13. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +0 -148
  14. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +0 -6
  15. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +0 -45
  16. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.d.ts +0 -4
  17. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoOrderBy.js +0 -19
  18. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +0 -4
  19. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +0 -12
  20. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +0 -6
  21. package/dist/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +0 -166
  22. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +0 -8
  23. package/dist/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +0 -200
  24. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +0 -6
  25. package/dist/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +0 -207
  26. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.d.ts +0 -1
  27. package/dist/TypeOrmConnector/test/advanced/advancedTestSuite.js +0 -256
  28. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.d.ts +0 -116
  29. package/dist/TypeOrmConnector/test/advanced/typeOrm.entity.js +0 -74
  30. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.d.ts +0 -5
  31. package/dist/TypeOrmConnector/test/advanced/typeOrm.mongo.repository.js +0 -17
  32. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.d.ts +0 -5
  33. package/dist/TypeOrmConnector/test/advanced/typeOrm.mysql.repository.js +0 -17
  34. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.d.ts +0 -5
  35. package/dist/TypeOrmConnector/test/advanced/typeOrm.repository.js +0 -17
  36. package/dist/TypeOrmConnector/test/basic/basicTestSuite.d.ts +0 -1
  37. package/dist/TypeOrmConnector/test/basic/basicTestSuite.js +0 -193
  38. package/dist/TypeOrmConnector/test/basic/goat.entity.d.ts +0 -53
  39. package/dist/TypeOrmConnector/test/basic/goat.entity.js +0 -53
  40. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.d.ts +0 -5
  41. package/dist/TypeOrmConnector/test/basic/goat.mongo.repository.js +0 -16
  42. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.d.ts +0 -5
  43. package/dist/TypeOrmConnector/test/basic/goat.mysql.repository.js +0 -16
  44. package/dist/TypeOrmConnector/test/basic/goat.repository.d.ts +0 -5
  45. package/dist/TypeOrmConnector/test/basic/goat.repository.js +0 -16
  46. package/dist/TypeOrmConnector/test/dbEntities.d.ts +0 -6
  47. package/dist/TypeOrmConnector/test/dbEntities.js +0 -17
  48. package/dist/TypeOrmConnector/test/docker/docker.d.ts +0 -35
  49. package/dist/TypeOrmConnector/test/docker/docker.js +0 -148
  50. package/dist/TypeOrmConnector/test/docker/mongo.d.ts +0 -16
  51. package/dist/TypeOrmConnector/test/docker/mongo.js +0 -93
  52. package/dist/TypeOrmConnector/test/docker/mysql.d.ts +0 -17
  53. package/dist/TypeOrmConnector/test/docker/mysql.js +0 -132
  54. package/dist/TypeOrmConnector/test/flock.d.ts +0 -4
  55. package/dist/TypeOrmConnector/test/flock.js +0 -25
  56. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.d.ts +0 -10
  57. package/dist/TypeOrmConnector/test/mongo/car.mongo.repository.js +0 -28
  58. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.d.ts +0 -2
  59. package/dist/TypeOrmConnector/test/mongo/mongoDatasource.js +0 -12
  60. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.d.ts +0 -9
  61. package/dist/TypeOrmConnector/test/mongo/roles.mongo.repository.js +0 -25
  62. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.d.ts +0 -6
  63. package/dist/TypeOrmConnector/test/mongo/roles_user.mongo.repository.js +0 -17
  64. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.d.ts +0 -10
  65. package/dist/TypeOrmConnector/test/mongo/user.mongo.repository.js +0 -32
  66. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -10
  67. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.js +0 -26
  68. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.d.ts +0 -2
  69. package/dist/TypeOrmConnector/test/mysql/mysqlDataSource.js +0 -16
  70. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.d.ts +0 -9
  71. package/dist/TypeOrmConnector/test/mysql/roles.mysql.repository.js +0 -25
  72. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.d.ts +0 -6
  73. package/dist/TypeOrmConnector/test/mysql/roles_user.mysql.repository.js +0 -17
  74. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.d.ts +0 -10
  75. package/dist/TypeOrmConnector/test/mysql/user.mysql.repository.js +0 -33
  76. package/dist/TypeOrmConnector/test/relations/car/car.entity.d.ts +0 -7
  77. package/dist/TypeOrmConnector/test/relations/car/car.entity.js +0 -32
  78. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.d.ts +0 -511
  79. package/dist/TypeOrmConnector/test/relations/car/car.output.schema.js +0 -8
  80. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.d.ts +0 -10
  81. package/dist/TypeOrmConnector/test/relations/car/car.repositoryTypeOrm.js +0 -26
  82. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -15
  83. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -9
  84. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
  85. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -548
  86. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.d.ts +0 -152
  87. package/dist/TypeOrmConnector/test/relations/roles/role.output.schema.js +0 -14
  88. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -12
  89. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -8
  90. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.d.ts +0 -6
  91. package/dist/TypeOrmConnector/test/relations/roles/roles.entity.js +0 -29
  92. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.d.ts +0 -9
  93. package/dist/TypeOrmConnector/test/relations/roles/roles.repositoryTypeOrm.js +0 -25
  94. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.d.ts +0 -5
  95. package/dist/TypeOrmConnector/test/relations/roles/roles_user.entity.js +0 -23
  96. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.d.ts +0 -15
  97. package/dist/TypeOrmConnector/test/relations/roles/roles_user.schema.js +0 -9
  98. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -6
  99. package/dist/TypeOrmConnector/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -17
  100. package/dist/TypeOrmConnector/test/relations/user/user.entity.d.ts +0 -14
  101. package/dist/TypeOrmConnector/test/relations/user/user.entity.js +0 -56
  102. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.d.ts +0 -10
  103. package/dist/TypeOrmConnector/test/relations/user/user.repositoryTypeOrm.js +0 -30
  104. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -546
  105. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -67
  106. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.d.ts +0 -2
  107. package/dist/TypeOrmConnector/test/sqlite/memoryDataSource.js +0 -12
  108. package/dist/TypeOrmConnector/util/clearEmpties.d.ts +0 -1
  109. package/dist/TypeOrmConnector/util/clearEmpties.js +0 -25
  110. package/dist/TypeOrmConnector/util/extractConditions.d.ts +0 -6
  111. package/dist/TypeOrmConnector/util/extractConditions.js +0 -80
  112. package/dist/TypeOrmConnector/util/extractInclude.d.ts +0 -2
  113. package/dist/TypeOrmConnector/util/extractInclude.js +0 -25
  114. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +0 -12
  115. package/dist/TypeOrmConnector/util/extractMetadataFromKeys.js +0 -42
  116. package/dist/TypeOrmConnector/util/extractOrderBy.d.ts +0 -4
  117. package/dist/TypeOrmConnector/util/extractOrderBy.js +0 -18
  118. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +0 -19
  119. package/dist/TypeOrmConnector/util/getRelationsFromModelGenerator.js +0 -26
  120. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +0 -1
  121. package/dist/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +0 -20
  122. package/dist/TypeOrmConnector/util/isAnyObject.d.ts +0 -1
  123. package/dist/TypeOrmConnector/util/isAnyObject.js +0 -7
  124. package/dist/TypeOrmConnector/util/nestQueryResults.d.ts +0 -2
  125. package/dist/TypeOrmConnector/util/nestQueryResults.js +0 -31
  126. package/dist/cache.d.ts +0 -9
  127. package/dist/cache.js +0 -43
  128. package/dist/core/Loopback/build-schema.d.ts +0 -31
  129. package/dist/core/Loopback/build-schema.js +0 -333
  130. package/dist/core/Loopback/common-types.d.ts +0 -36
  131. package/dist/core/Loopback/common-types.js +0 -13
  132. package/dist/core/Loopback/json-to-schema.d.ts +0 -6
  133. package/dist/core/Loopback/json-to-schema.js +0 -96
  134. package/dist/core/Loopback/mapValues.d.ts +0 -2
  135. package/dist/core/Loopback/mapValues.js +0 -835
  136. package/dist/core/Loopback/metadata.d.ts +0 -9
  137. package/dist/core/Loopback/metadata.js +0 -28
  138. package/dist/core/Loopback/model.d.ts +0 -87
  139. package/dist/core/Loopback/model.js +0 -244
  140. package/dist/core/Loopback/query.d.ts +0 -97
  141. package/dist/core/Loopback/query.js +0 -292
  142. package/dist/core/Loopback/relation.types.d.ts +0 -45
  143. package/dist/core/Loopback/relation.types.js +0 -13
  144. package/dist/core/Loopback/type-resolver.d.ts +0 -7
  145. package/dist/core/Loopback/type-resolver.js +0 -34
  146. package/dist/core/Loopback/type.d.ts +0 -9
  147. package/dist/core/Loopback/type.js +0 -2
  148. package/dist/core/Nestjs/applyDecorators.d.ts +0 -1
  149. package/dist/core/Nestjs/applyDecorators.js +0 -17
  150. package/dist/core/Nestjs/types/common.d.ts +0 -16
  151. package/dist/core/Nestjs/types/common.js +0 -37
  152. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -1
  153. package/dist/core/Nestjs/types/decorators/api-hide-property.decorator.js +0 -7
  154. package/dist/core/Nestjs/types/decorators/api-property.decorator.d.ts +0 -27
  155. package/dist/core/Nestjs/types/decorators/api-property.decorator.js +0 -65
  156. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -5
  157. package/dist/core/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -131
  158. package/dist/core/Nestjs/types/decorators/args-type.decorator.d.ts +0 -1
  159. package/dist/core/Nestjs/types/decorators/args-type.decorator.js +0 -19
  160. package/dist/core/Nestjs/types/decorators/create-property.decorator.d.ts +0 -2
  161. package/dist/core/Nestjs/types/decorators/create-property.decorator.js +0 -55
  162. package/dist/core/Nestjs/types/decorators/directive.decorator.d.ts +0 -1
  163. package/dist/core/Nestjs/types/decorators/directive.decorator.js +0 -36
  164. package/dist/core/Nestjs/types/decorators/extensions.decorator.d.ts +0 -1
  165. package/dist/core/Nestjs/types/decorators/extensions.decorator.js +0 -25
  166. package/dist/core/Nestjs/types/decorators/field.decorator.d.ts +0 -15
  167. package/dist/core/Nestjs/types/decorators/field.decorator.js +0 -56
  168. package/dist/core/Nestjs/types/decorators/input-type.decorator.d.ts +0 -7
  169. package/dist/core/Nestjs/types/decorators/input-type.decorator.js +0 -23
  170. package/dist/core/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -9
  171. package/dist/core/Nestjs/types/decorators/interface-type.decorator.js +0 -27
  172. package/dist/core/Nestjs/types/decorators/partial-type.helper.d.ts +0 -3
  173. package/dist/core/Nestjs/types/decorators/partial-type.helper.js +0 -42
  174. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -3
  175. package/dist/core/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -9
  176. package/dist/core/Nestjs/types/errors/directive-parsing.error.d.ts +0 -3
  177. package/dist/core/Nestjs/types/errors/directive-parsing.error.js +0 -9
  178. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -3
  179. package/dist/core/Nestjs/types/errors/unable-to-find-fields.error.js +0 -9
  180. package/dist/core/Nestjs/types/errors/undefined-type.error.d.ts +0 -3
  181. package/dist/core/Nestjs/types/errors/undefined-type.error.js +0 -10
  182. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -3
  183. package/dist/core/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -10
  184. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -5
  185. package/dist/core/Nestjs/types/interfaces/base-type-options.interface.js +0 -2
  186. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -5
  187. package/dist/core/Nestjs/types/interfaces/class-decorator-factory.interface.js +0 -2
  188. package/dist/core/Nestjs/types/interfaces/complexity.interface.d.ts +0 -11
  189. package/dist/core/Nestjs/types/interfaces/complexity.interface.js +0 -2
  190. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -15
  191. package/dist/core/Nestjs/types/interfaces/field-middleware.interface.js +0 -2
  192. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -235
  193. package/dist/core/Nestjs/types/interfaces/open-api-spec.interface.js +0 -2
  194. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -2
  195. package/dist/core/Nestjs/types/interfaces/resolve-type-fn.interface.js +0 -2
  196. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -5
  197. package/dist/core/Nestjs/types/interfaces/return-type-func.interface.js +0 -2
  198. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -9
  199. package/dist/core/Nestjs/types/interfaces/schema-object-metadata.interface.js +0 -2
  200. package/dist/core/Nestjs/types/interfaces/type-options.interface.d.ts +0 -5
  201. package/dist/core/Nestjs/types/interfaces/type-options.interface.js +0 -2
  202. package/dist/core/Nestjs/types/lazy-metadata.storage.d.ts +0 -15
  203. package/dist/core/Nestjs/types/lazy-metadata.storage.js +0 -67
  204. package/dist/core/Nestjs/types/metadata/class.metadata.d.ts +0 -11
  205. package/dist/core/Nestjs/types/metadata/class.metadata.js +0 -2
  206. package/dist/core/Nestjs/types/metadata/directive.metadata.d.ts +0 -8
  207. package/dist/core/Nestjs/types/metadata/directive.metadata.js +0 -2
  208. package/dist/core/Nestjs/types/metadata/enum.metadata.d.ts +0 -11
  209. package/dist/core/Nestjs/types/metadata/enum.metadata.js +0 -2
  210. package/dist/core/Nestjs/types/metadata/extensions.metadata.d.ts +0 -8
  211. package/dist/core/Nestjs/types/metadata/extensions.metadata.js +0 -2
  212. package/dist/core/Nestjs/types/metadata/index.d.ts +0 -8
  213. package/dist/core/Nestjs/types/metadata/index.js +0 -11
  214. package/dist/core/Nestjs/types/metadata/interface.metadata.d.ts +0 -6
  215. package/dist/core/Nestjs/types/metadata/interface.metadata.js +0 -2
  216. package/dist/core/Nestjs/types/metadata/object-type.metadata.d.ts +0 -4
  217. package/dist/core/Nestjs/types/metadata/object-type.metadata.js +0 -2
  218. package/dist/core/Nestjs/types/metadata/param.metadata.d.ts +0 -18
  219. package/dist/core/Nestjs/types/metadata/param.metadata.js +0 -2
  220. package/dist/core/Nestjs/types/metadata/property.metadata.d.ts +0 -20
  221. package/dist/core/Nestjs/types/metadata/property.metadata.js +0 -2
  222. package/dist/core/Nestjs/types/metadata/resolver.metadata.d.ts +0 -34
  223. package/dist/core/Nestjs/types/metadata/resolver.metadata.js +0 -2
  224. package/dist/core/Nestjs/types/metadata/union.metadata.d.ts +0 -9
  225. package/dist/core/Nestjs/types/metadata/union.metadata.js +0 -2
  226. package/dist/core/Nestjs/types/object-type.decorator.d.ts +0 -8
  227. package/dist/core/Nestjs/types/object-type.decorator.js +0 -25
  228. package/dist/core/Nestjs/types/omit-type.d.ts +0 -2
  229. package/dist/core/Nestjs/types/omit-type.js +0 -34
  230. package/dist/core/Nestjs/types/reflection.utils.d.ts +0 -15
  231. package/dist/core/Nestjs/types/reflection.utils.js +0 -65
  232. package/dist/core/Nestjs/types/set-metadata.decorator.d.ts +0 -4
  233. package/dist/core/Nestjs/types/set-metadata.decorator.js +0 -16
  234. package/dist/core/Nestjs/types/type-metadata.storage.d.ts +0 -69
  235. package/dist/core/Nestjs/types/type-metadata.storage.js +0 -342
  236. package/dist/core/Nestjs/types/utils/enum.utils.d.ts +0 -3
  237. package/dist/core/Nestjs/types/utils/enum.utils.js +0 -29
  238. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -3
  239. package/dist/core/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -72
  240. package/dist/core/Nestjs/types/utils/mapped-types.utils.d.ts +0 -2
  241. package/dist/core/Nestjs/types/utils/mapped-types.utils.js +0 -38
  242. package/dist/core/Nestjs/types/utils/model-properties-accessor.d.ts +0 -6
  243. package/dist/core/Nestjs/types/utils/model-properties-accessor.js +0 -36
  244. package/dist/core/Nestjs/types/utils/type-helpers.utils.d.ts +0 -2
  245. package/dist/core/Nestjs/types/utils/type-helpers.utils.js +0 -16
  246. package/dist/core/types.d.ts +0 -23
  247. package/dist/core/types.js +0 -29
  248. package/dist/decorators.d.ts +0 -47
  249. package/dist/decorators.js +0 -104
  250. package/dist/generatorDatasource.d.ts +0 -2
  251. package/dist/generatorDatasource.js +0 -12
  252. package/dist/index.d.ts +0 -29
  253. package/dist/index.js +0 -49
  254. package/dist/loadRelations.d.ts +0 -12
  255. package/dist/loadRelations.js +0 -133
  256. package/dist/outputKeys.d.ts +0 -2
  257. package/dist/outputKeys.js +0 -17
  258. package/dist/tsconfig.tsbuildinfo +0 -1
  259. package/dist/types.d.ts +0 -141
  260. package/dist/types.js +0 -22
@@ -1,403 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeOrmConnector = void 0;
4
- const js_utils_1 = require("@goatlab/js-utils");
5
- const BaseConnector_1 = require("../BaseConnector");
6
- const outputKeys_1 = require("../outputKeys");
7
- const generatorDatasource_1 = require("../generatorDatasource");
8
- const getMongoWhere_1 = require("./queryBuilder/mongodb/getMongoWhere");
9
- const getRelationsFromModelGenerator_1 = require("./util/getRelationsFromModelGenerator");
10
- const getMongoFindAggregatedQuery_1 = require("./queryBuilder/mongodb/getMongoFindAggregatedQuery");
11
- const extractInclude_1 = require("./util/extractInclude");
12
- const extractOrderBy_1 = require("./util/extractOrderBy");
13
- const getTypeOrmWhere_1 = require("./queryBuilder/sql/getTypeOrmWhere");
14
- const getQueryBuilderWhere_1 = require("./queryBuilder/sql/getQueryBuilderWhere");
15
- const clearEmpties_1 = require("./util/clearEmpties");
16
- class TypeOrmConnector extends BaseConnector_1.BaseConnector {
17
- constructor({ entity, dataSource, inputSchema, outputSchema }) {
18
- super();
19
- this.dataSource = dataSource;
20
- this.inputSchema = inputSchema;
21
- this.outputSchema =
22
- outputSchema || inputSchema;
23
- this.entity = entity;
24
- this.repository = this.dataSource.getRepository(entity);
25
- this.isMongoDB =
26
- this.repository.metadata.connection.driver.options.type === 'mongodb';
27
- if (this.isMongoDB) {
28
- this.repository = this.dataSource.getMongoRepository(entity);
29
- }
30
- const relationShipBuilder = generatorDatasource_1.modelGeneratorDataSource.getRepository(entity);
31
- const { relations } = (0, getRelationsFromModelGenerator_1.getRelationsFromModelGenerator)(relationShipBuilder);
32
- this.modelRelations = relations;
33
- this.outputKeys = (0, outputKeys_1.getOutputKeys)(relationShipBuilder) || [];
34
- }
35
- async insert(data) {
36
- const validatedData = this.inputSchema.parse(data);
37
- if (this.isMongoDB && validatedData['id']) {
38
- validatedData['_id'] = js_utils_1.Ids.objectID(validatedData['id']);
39
- delete validatedData['id'];
40
- }
41
- let datum = await this.repository.save(validatedData);
42
- if (this.isMongoDB) {
43
- datum['id'] = datum['id'].toString();
44
- }
45
- return this.outputSchema.parse((0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(datum)));
46
- }
47
- async insertMany(data) {
48
- const validatedData = this.inputSchema.array().parse(data);
49
- const inserted = await this.repository.save(validatedData, {
50
- chunk: data.length / 300
51
- });
52
- return this.outputSchema.array().parse(inserted.map(d => {
53
- if (this.isMongoDB) {
54
- d['id'] = d['id'].toString();
55
- }
56
- return (0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(d));
57
- }));
58
- }
59
- async findMany(query) {
60
- const requiresCustomQuery = query?.include && Object.keys(query.include).length;
61
- if (this.isMongoDB) {
62
- const results = await this.customMongoRelatedFind(query);
63
- return results;
64
- }
65
- if (requiresCustomQuery) {
66
- const { queryBuilder: customQuery, selectedKeys } = this.customTypeOrmRelatedFind({
67
- fluentQuery: query
68
- });
69
- customQuery.select(selectedKeys);
70
- let [result, count] = await customQuery.getManyAndCount();
71
- return result;
72
- }
73
- const generatedQuery = this.generateTypeOrmQuery(query);
74
- let [found, count] = await this.repository.findAndCount(generatedQuery);
75
- found.map(d => {
76
- if (this.isMongoDB) {
77
- d['id'] = d['_id'].toString();
78
- }
79
- (0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(d));
80
- });
81
- if (query?.paginated) {
82
- const paginationInfo = {
83
- total: count,
84
- perPage: query.paginated.perPage,
85
- currentPage: query.paginated.page,
86
- nextPage: query.paginated.page + 1,
87
- firstPage: 1,
88
- lastPage: Math.ceil(count / query.paginated.perPage),
89
- prevPage: query.paginated.page === 1 ? null : query.paginated.page - 1,
90
- from: (query.paginated.page - 1) * query.paginated.perPage + 1,
91
- to: query.paginated.perPage * query.paginated.page,
92
- data: found
93
- };
94
- return paginationInfo;
95
- }
96
- if (query?.select) {
97
- return found;
98
- }
99
- return this.outputSchema?.array().parse(found);
100
- }
101
- async updateById(id, data) {
102
- const parsedId = this.isMongoDB
103
- ? js_utils_1.Ids.objectID(id)
104
- : id;
105
- const idFieldName = this.isMongoDB ? '_id' : 'id';
106
- const dataToInsert = this.outputKeys.includes('updated')
107
- ? {
108
- ...data,
109
- ...{ updated: new Date() }
110
- }
111
- : data;
112
- const validatedData = this.inputSchema.parse(dataToInsert);
113
- const updateResults = await this.repository.update(id, validatedData);
114
- if (updateResults.affected === 0) {
115
- throw new Error('No rows where affected');
116
- }
117
- const dbResult = await this.repository.findOneOrFail({
118
- where: {
119
- [idFieldName]: parsedId
120
- }
121
- });
122
- if (this.isMongoDB) {
123
- dbResult['id'] = dbResult['id'].toString();
124
- }
125
- return this.outputSchema?.parse((0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(dbResult)));
126
- }
127
- async replaceById(id, data) {
128
- const parsedId = this.isMongoDB
129
- ? js_utils_1.Ids.objectID(id)
130
- : id;
131
- const idFieldName = this.isMongoDB ? '_id' : 'id';
132
- const value = await this.repository.findOneOrFail({
133
- where: {
134
- [idFieldName]: parsedId
135
- }
136
- });
137
- const flatValue = js_utils_1.Objects.flatten(JSON.parse(JSON.stringify(value)));
138
- Object.keys(flatValue).forEach(key => {
139
- flatValue[key] = null;
140
- });
141
- const nullObject = js_utils_1.Objects.nest(flatValue);
142
- const newValue = { ...nullObject, ...data };
143
- delete newValue._id;
144
- delete newValue.id;
145
- delete newValue.created;
146
- delete newValue.updated;
147
- const dataToInsert = this.outputKeys.includes('updated')
148
- ? {
149
- ...data,
150
- ...{ updated: new Date() }
151
- }
152
- : data;
153
- const validatedData = this.inputSchema.parse(dataToInsert);
154
- const updateResults = await this.repository.update(id, validatedData);
155
- if (updateResults.affected === 0) {
156
- throw new Error('No rows where affected');
157
- }
158
- const val = await this.repository.findOneOrFail({
159
- where: {
160
- [idFieldName]: parsedId
161
- }
162
- });
163
- if (this.isMongoDB) {
164
- val['id'] = val['id'].toString();
165
- }
166
- return this.outputSchema.parse((0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(val)));
167
- }
168
- async deleteById(id) {
169
- const parsedId = this.isMongoDB
170
- ? js_utils_1.Ids.objectID(id)
171
- : id;
172
- await this.repository.delete(parsedId);
173
- return id;
174
- }
175
- async clear() {
176
- await this.repository.clear();
177
- return true;
178
- }
179
- loadFirst(query) {
180
- const newInstance = this.clone();
181
- newInstance.setRelatedQuery({
182
- entity: this.entity,
183
- repository: this,
184
- query: {
185
- ...query,
186
- limit: 1
187
- }
188
- });
189
- return newInstance;
190
- }
191
- loadById(id) {
192
- const newInstance = this.clone();
193
- newInstance.setRelatedQuery({
194
- entity: this.entity,
195
- repository: this,
196
- query: {
197
- where: {
198
- id
199
- }
200
- }
201
- });
202
- return newInstance;
203
- }
204
- raw() {
205
- return this.repository;
206
- }
207
- mongoRaw() {
208
- return this.repository;
209
- }
210
- clone() {
211
- return new this.constructor();
212
- }
213
- generateTypeOrmQuery(query) {
214
- let filter = {};
215
- filter.where = this.isMongoDB
216
- ? (0, getMongoWhere_1.getMongoWhere)({
217
- where: query?.where
218
- })
219
- : (0, getTypeOrmWhere_1.getTypeOrmWhere)({
220
- where: query?.where
221
- });
222
- filter.take = query?.limit;
223
- filter.skip = query?.offset;
224
- if (query?.paginated) {
225
- filter.take = query.paginated.perPage;
226
- filter.skip = (query.paginated?.page - 1) * query?.paginated.perPage;
227
- }
228
- if (query?.select) {
229
- const selectQuery = js_utils_1.Objects.flatten(query?.select || {});
230
- filter.select = selectQuery;
231
- }
232
- if (query?.orderBy) {
233
- filter.order = (0, extractOrderBy_1.extractOrderBy)(query.orderBy);
234
- }
235
- if (query?.include) {
236
- filter.relations = (0, extractInclude_1.extractInclude)(query.include);
237
- }
238
- return filter;
239
- }
240
- customTypeOrmRelatedFind({ fluentQuery: query, queryBuilder, targetFluentRepository, alias, isLeftJoin }) {
241
- const queryAlias = alias || queryBuilder?.alias || `${this.repository.metadata.tableName}`;
242
- let customQuery = queryBuilder || this.raw().createQueryBuilder(queryAlias);
243
- const self = targetFluentRepository || this;
244
- if (!isLeftJoin) {
245
- customQuery = (0, getQueryBuilderWhere_1.getQueryBuilderWhere)({
246
- queryBuilder: customQuery,
247
- queryAlias,
248
- where: query?.where
249
- });
250
- }
251
- const { queryBuilder: qb, selectedKeys } = this.getTypeOrmQueryBuilderSubqueries({
252
- queryBuilder: customQuery,
253
- selfReference: targetFluentRepository,
254
- include: query?.include,
255
- leftTableAlias: alias
256
- });
257
- customQuery = qb;
258
- const extraKeys = this.getTypeOrmQueryBuilderSelect(queryAlias, self, query?.select);
259
- const keySet = new Set([...selectedKeys, ...extraKeys]);
260
- return {
261
- queryBuilder: customQuery,
262
- selectedKeys: Array.from(keySet)
263
- };
264
- }
265
- getTypeOrmQueryBuilderSelect(queryAlias, self, select) {
266
- const selected = js_utils_1.Objects.flatten(select || {});
267
- const selectedKeys = [];
268
- const iterableKeys = Object.keys(selected).length
269
- ? Object.keys(selected)
270
- : self.outputKeys || [];
271
- const baseNestedKeys = new Set();
272
- for (const key of iterableKeys) {
273
- const keyArray = key.split('.');
274
- if (keyArray.length <= 1) {
275
- continue;
276
- }
277
- const total = keyArray.length;
278
- for (const [index, val] of keyArray.entries()) {
279
- if (total === index + 1) {
280
- continue;
281
- }
282
- let excludedField = '';
283
- if (excludedField) {
284
- excludedField = `${excludedField}.${excludedField}${val}`;
285
- }
286
- excludedField = `${excludedField}${val}`;
287
- baseNestedKeys.add(excludedField);
288
- }
289
- }
290
- for (const k of iterableKeys) {
291
- const field = k.includes('.') ? js_utils_1.Strings.camel(`${k}`) : k;
292
- const search = `${queryAlias}.${field}`;
293
- let isNestedRelation = false;
294
- for (const item of k.split('.')) {
295
- if (!!self[item]) {
296
- isNestedRelation = true;
297
- break;
298
- }
299
- }
300
- if (!!self[field] || !!self[queryAlias] || isNestedRelation) {
301
- continue;
302
- }
303
- if (baseNestedKeys.has(field)) {
304
- continue;
305
- }
306
- selectedKeys.push(search);
307
- }
308
- return selectedKeys;
309
- }
310
- getTypeOrmQueryBuilderSubqueries({ queryBuilder, selfReference, include, leftTableAlias }) {
311
- const selectedKeys = [];
312
- if (!include) {
313
- return { queryBuilder, selectedKeys };
314
- }
315
- for (const relation of Object.keys(include)) {
316
- const self = selfReference || this;
317
- const dbRelation = self.modelRelations[relation];
318
- const newSelf = self[relation]();
319
- const fluentRelatedQuery = include[relation] === true ? {} : include[relation];
320
- if (!dbRelation) {
321
- throw new Error(`The relation ${relation} is not properly defined. Check your entity and repository`);
322
- }
323
- const selectedKeysArray = fluentRelatedQuery.select
324
- ? Object.keys(js_utils_1.Objects.flatten(fluentRelatedQuery.select))
325
- : [];
326
- if (dbRelation.isManyToOne) {
327
- const leftSideTableName = leftTableAlias || queryBuilder.alias;
328
- const leftSideForeignKey = `${leftSideTableName}.${dbRelation.joinColumns[0].propertyPath}`;
329
- const rightSideTableName = `${leftSideTableName}_${relation}`;
330
- const rightSidePrimaryKey = `${rightSideTableName}.id`;
331
- const keys = new Set(selectedKeysArray.map(k => `${rightSideTableName}.${k}`));
332
- selectedKeys.push(...Array.from(keys));
333
- const shallowQuery = { ...fluentRelatedQuery };
334
- delete shallowQuery['include'];
335
- const { queryBuilder: leftJoinBuilder, selectedKeys: deepkeys } = this.customTypeOrmRelatedFind({
336
- queryBuilder: this.raw().createQueryBuilder(rightSideTableName),
337
- fluentQuery: shallowQuery,
338
- targetFluentRepository: newSelf,
339
- alias: rightSideTableName
340
- });
341
- selectedKeys.push(...deepkeys);
342
- const joinQuery = leftJoinBuilder.getQuery().split('WHERE');
343
- const customLeftJoin = joinQuery && joinQuery[1] ? joinQuery[1].trim() : '1=1';
344
- const leftJoinParams = leftJoinBuilder.getParameters();
345
- queryBuilder.leftJoinAndMapOne(`${leftSideTableName}.${relation}`, dbRelation.targetClass, rightSideTableName, `(${leftSideForeignKey} = ${rightSidePrimaryKey} AND ${customLeftJoin} )`, leftJoinParams);
346
- const { queryBuilder: qb, selectedKeys: k } = this.customTypeOrmRelatedFind({
347
- queryBuilder,
348
- fluentQuery: fluentRelatedQuery,
349
- targetFluentRepository: newSelf,
350
- alias: rightSideTableName,
351
- isLeftJoin: true
352
- });
353
- selectedKeys.push(...k);
354
- queryBuilder = qb;
355
- }
356
- if (dbRelation.isOneToMany) {
357
- const leftSideTableName = leftTableAlias || queryBuilder.alias;
358
- const leftSidePrimaryKey = `${leftSideTableName}.id`;
359
- const rightSideTableName = `${leftSideTableName}_${relation}`;
360
- const rightSideForeignKey = `${rightSideTableName}.${dbRelation.inverseSidePropertyPath}`;
361
- const keys = new Set(selectedKeysArray.map(k => `${rightSideTableName}.${k}`));
362
- selectedKeys.push(...Array.from(keys));
363
- const shallowQuery = { ...fluentRelatedQuery };
364
- delete shallowQuery['include'];
365
- const { queryBuilder: leftJoinBuilder, selectedKeys: deepKeys } = this.customTypeOrmRelatedFind({
366
- queryBuilder: this.raw().createQueryBuilder(rightSideTableName),
367
- fluentQuery: shallowQuery,
368
- targetFluentRepository: newSelf,
369
- alias: rightSideTableName
370
- });
371
- selectedKeys.push(...deepKeys);
372
- const joinQuery = leftJoinBuilder.getQuery().split('WHERE');
373
- const customLeftJoin = joinQuery && joinQuery[1] ? joinQuery[1].trim() : '1=1';
374
- const leftJoinParams = leftJoinBuilder.getParameters();
375
- queryBuilder.leftJoinAndMapMany(`${leftSideTableName}.${relation}`, dbRelation.targetClass, rightSideTableName, `(${leftSidePrimaryKey} = ${rightSideForeignKey} AND ${customLeftJoin} )`, leftJoinParams);
376
- const { queryBuilder: q, selectedKeys: k } = this.customTypeOrmRelatedFind({
377
- queryBuilder,
378
- fluentQuery: fluentRelatedQuery,
379
- targetFluentRepository: newSelf,
380
- alias: rightSideTableName,
381
- isLeftJoin: true
382
- });
383
- selectedKeys.push(...k);
384
- queryBuilder = q;
385
- }
386
- }
387
- return { queryBuilder, selectedKeys };
388
- }
389
- async customMongoRelatedFind(query) {
390
- const aggregate = (0, getMongoFindAggregatedQuery_1.getMongoFindAggregatedQuery)({
391
- query,
392
- self: this
393
- });
394
- const raw = await this.mongoRaw().aggregate(aggregate).toArray();
395
- if (query?.select) {
396
- return this.outputSchema['deepPartial']()
397
- .array()
398
- .parse(raw);
399
- }
400
- return this.outputSchema?.array().parse(raw);
401
- }
402
- }
403
- exports.TypeOrmConnector = TypeOrmConnector;
@@ -1,7 +0,0 @@
1
- import { AnyObject, FluentQuery } from '../../../types';
2
- export interface getMongoBaseAggregationParams {
3
- include: FluentQuery<AnyObject>['include'];
4
- self: any;
5
- alias?: string;
6
- }
7
- export declare const getMongoBaseAggregation: ({ include, self }: getMongoBaseAggregationParams) => any[];
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMongoBaseAggregation = void 0;
4
- const getMongoWhere_1 = require("./getMongoWhere");
5
- const getMongoBaseAggregation = ({ include, self }) => {
6
- if (!include) {
7
- return [];
8
- }
9
- const modelRelations = self.modelRelations;
10
- const aggregations = [];
11
- for (const relation of Object.keys(include)) {
12
- if (!modelRelations[relation]) {
13
- continue;
14
- }
15
- const innerLookups = [];
16
- const dbRelation = modelRelations[relation];
17
- if (include[relation]['include']) {
18
- const newSelf = self[relation] && self[relation]();
19
- const innerRelations = (0, exports.getMongoBaseAggregation)({
20
- include: include[relation]['include'],
21
- self: newSelf
22
- });
23
- innerLookups.push(...innerRelations);
24
- }
25
- const where = (0, getMongoWhere_1.getMongoWhere)({
26
- where: include[relation]['where']
27
- });
28
- if (dbRelation.isManyToOne) {
29
- const localField = dbRelation.joinColumns[0].propertyPath;
30
- aggregations.push({
31
- $addFields: {
32
- [`${localField}_object`]: { $toObjectId: `$${localField}` }
33
- }
34
- });
35
- aggregations.push({ $addFields: { id: { $toString: '$_id' } } });
36
- aggregations.push({
37
- $lookup: {
38
- from: dbRelation.tableName,
39
- localField: `${localField}_object`,
40
- foreignField: '_id',
41
- as: dbRelation.propertyName,
42
- pipeline: [
43
- {
44
- $match: where
45
- },
46
- { $addFields: { id: { $toString: '$_id' } } },
47
- ...innerLookups
48
- ]
49
- }
50
- });
51
- aggregations.push({
52
- $unwind: {
53
- path: `$${dbRelation.propertyName}`,
54
- preserveNullAndEmptyArrays: true
55
- }
56
- });
57
- }
58
- if (dbRelation.isOneToMany) {
59
- aggregations.push({ $addFields: { string_id: { $toString: '$_id' } } });
60
- aggregations.push({ $addFields: { id: { $toString: '$_id' } } });
61
- aggregations.push({
62
- $lookup: {
63
- from: dbRelation.tableName,
64
- localField: 'string_id',
65
- foreignField: dbRelation.inverseSidePropertyPath,
66
- as: dbRelation.propertyName,
67
- pipeline: [
68
- {
69
- $match: where
70
- },
71
- { $addFields: { id: { $toString: '$_id' } } },
72
- ...innerLookups
73
- ]
74
- }
75
- });
76
- }
77
- if (dbRelation.isManyToMany) {
78
- const relatedTableName = dbRelation.tableName;
79
- const pivotTableName = dbRelation.joinColumns[0].relationMetadata.joinTableName;
80
- const pivotForeignField = dbRelation.joinColumns[0].propertyPath;
81
- const inverseForeignField = dbRelation.inverseJoinColumns[0].propertyPath;
82
- if (!relatedTableName ||
83
- !pivotTableName ||
84
- !pivotForeignField ||
85
- !inverseForeignField) {
86
- throw new Error(`Your many to many relation is not properly set up. Please check both your models and schema for relation: ${relation}`);
87
- }
88
- aggregations.push({ $addFields: { id: { $toString: '$_id' } } });
89
- aggregations.push({
90
- $addFields: { parent_string_id: { $toString: '$_id' } }
91
- });
92
- aggregations.push({
93
- $lookup: {
94
- from: pivotTableName,
95
- localField: 'parent_string_id',
96
- foreignField: pivotForeignField,
97
- as: dbRelation.propertyName,
98
- pipeline: [
99
- { $addFields: { id: { $toString: '$_id' } } },
100
- {
101
- $addFields: {
102
- [`${inverseForeignField}_object`]: {
103
- $toObjectId: `$${inverseForeignField}`
104
- }
105
- }
106
- },
107
- {
108
- $lookup: {
109
- from: relatedTableName,
110
- localField: `${inverseForeignField}_object`,
111
- foreignField: '_id',
112
- pipeline: [
113
- {
114
- $match: where
115
- },
116
- { $addFields: { id: { $toString: '$_id' } } }
117
- ],
118
- as: dbRelation.propertyName
119
- }
120
- },
121
- {
122
- $unwind: {
123
- path: `$${dbRelation.propertyName}`,
124
- preserveNullAndEmptyArrays: true
125
- }
126
- },
127
- {
128
- $project: {
129
- [dbRelation.propertyName]: `$${dbRelation.propertyName}`,
130
- pivot: '$$ROOT'
131
- }
132
- },
133
- {
134
- $replaceRoot: {
135
- newRoot: {
136
- $mergeObjects: ['$$ROOT', `$${dbRelation.propertyName}`]
137
- }
138
- }
139
- },
140
- { $project: { [dbRelation.propertyName]: 0 } }
141
- ]
142
- }
143
- });
144
- }
145
- }
146
- return aggregations;
147
- };
148
- exports.getMongoBaseAggregation = getMongoBaseAggregation;
@@ -1,6 +0,0 @@
1
- import { FluentQuery } from '../../../types';
2
- export declare type getFindAggregateQueryParams<T extends FluentQuery<any>> = {
3
- query?: T;
4
- self?: any;
5
- };
6
- export declare const getMongoFindAggregatedQuery: ({ query, self }: getFindAggregateQueryParams<any>) => any[];
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMongoFindAggregatedQuery = void 0;
4
- const getMongoBaseAggregations_1 = require("./getMongoBaseAggregations");
5
- const getMongoOrderBy_1 = require("./getMongoOrderBy");
6
- const getMongoSelect_1 = require("./getMongoSelect");
7
- const getMongoWhere_1 = require("./getMongoWhere");
8
- const getMongoFindAggregatedQuery = ({ query, self }) => {
9
- const selected = (0, getMongoSelect_1.getMongoSelect)(query?.select);
10
- const orderBy = (0, getMongoOrderBy_1.getMongoOrderBy)(query?.orderBy);
11
- const where = (0, getMongoWhere_1.getMongoWhere)({
12
- where: query?.where
13
- });
14
- const baseAggregations = (0, getMongoBaseAggregations_1.getMongoBaseAggregation)({
15
- include: query?.include,
16
- self
17
- });
18
- const aggregate = [
19
- {
20
- $match: where
21
- }
22
- ];
23
- if (orderBy) {
24
- aggregate.push(orderBy);
25
- }
26
- if (!query?.include) {
27
- aggregate.push({ $addFields: { id: { $toString: '$_id' } } });
28
- }
29
- if (query?.offset) {
30
- aggregate.push({ $skip: query?.offset });
31
- }
32
- if (query?.limit) {
33
- aggregate.push({ $limit: query.limit });
34
- }
35
- for (const lookup of baseAggregations) {
36
- aggregate.push(lookup);
37
- }
38
- if (selected && Object.keys(selected).length) {
39
- aggregate.push({
40
- $project: selected
41
- });
42
- }
43
- return aggregate;
44
- };
45
- exports.getMongoFindAggregatedQuery = getMongoFindAggregatedQuery;
@@ -1,4 +0,0 @@
1
- import { FluentQuery } from '../../../types';
2
- export declare const getMongoOrderBy: (orderBy?: FluentQuery<any>['orderBy']) => {
3
- $sort: {};
4
- } | undefined;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMongoOrderBy = void 0;
4
- const extractOrderBy_1 = require("../../util/extractOrderBy");
5
- const getMongoOrderBy = (orderBy) => {
6
- if (!orderBy) {
7
- return undefined;
8
- }
9
- const order = (0, extractOrderBy_1.extractOrderBy)(orderBy);
10
- const sort = {
11
- $sort: {}
12
- };
13
- for (const key of Object.keys(order)) {
14
- const val = order[key];
15
- sort.$sort[key] = val === 'asc' ? 1 : -1;
16
- }
17
- return sort;
18
- };
19
- exports.getMongoOrderBy = getMongoOrderBy;
@@ -1,4 +0,0 @@
1
- import { FluentQuery } from '../../../types';
2
- export declare const getMongoSelect: (select: FluentQuery<any>['select']) => {
3
- [key: string]: any;
4
- };
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMongoSelect = void 0;
4
- const js_utils_1 = require("@goatlab/js-utils");
5
- const getMongoSelect = (select) => {
6
- const selected = js_utils_1.Objects.flatten(select || {});
7
- for (const k of Object.keys(selected)) {
8
- selected[k] = 1;
9
- }
10
- return selected;
11
- };
12
- exports.getMongoSelect = getMongoSelect;
@@ -1,6 +0,0 @@
1
- import { FindManyOptions } from 'typeorm';
2
- import { AnyObject, FluentQuery } from '../../../types';
3
- export interface getTypeOrmMongoWhereParams {
4
- where?: FluentQuery<AnyObject>['where'];
5
- }
6
- export declare const getMongoWhere: ({ where }: getTypeOrmMongoWhereParams) => FindManyOptions['where'];