@goatlab/fluent 0.7.4 → 0.7.9

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 (273) hide show
  1. package/dist/{BaseConnector.d.ts → fluent/src/BaseConnector.d.ts} +8 -31
  2. package/dist/{BaseConnector.js → fluent/src/BaseConnector.js} +11 -104
  3. package/dist/{Fluent.d.ts → fluent/src/Fluent.d.ts} +0 -0
  4. package/dist/{Fluent.js → fluent/src/Fluent.js} +0 -0
  5. package/dist/fluent/src/FluentConnectorInterface.d.ts +17 -0
  6. package/dist/{core/Loopback/type.js → fluent/src/FluentConnectorInterface.js} +0 -0
  7. package/dist/{FluentEntity.d.ts → fluent/src/FluentEntity.d.ts} +0 -0
  8. package/dist/{FluentEntity.js → fluent/src/FluentEntity.js} +0 -0
  9. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/TypeOrmConnector.d.ts +8 -12
  10. package/dist/fluent/src/TypeOrmConnector/TypeOrmConnector.js +397 -0
  11. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.d.ts +7 -0
  12. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoBaseAggregations.js +148 -0
  13. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.d.ts +6 -0
  14. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoFindAggregatedQuery.js +34 -0
  15. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.d.ts +4 -0
  16. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoSelect.js +12 -0
  17. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.d.ts +6 -0
  18. package/dist/fluent/src/TypeOrmConnector/queryBuilder/mongodb/getMongoWhere.js +166 -0
  19. package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.d.ts +8 -0
  20. package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getQueryBuilderWhere.js +200 -0
  21. package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.d.ts +6 -0
  22. package/dist/fluent/src/TypeOrmConnector/queryBuilder/sql/getTypeOrmWhere.js +207 -0
  23. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/advancedTestSuite.d.ts +0 -0
  24. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/advancedTestSuite.js +0 -0
  25. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.entity.d.ts +0 -0
  26. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.entity.js +0 -0
  27. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mongo.repository.d.ts +0 -0
  28. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mongo.repository.js +0 -0
  29. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mysql.repository.d.ts +0 -0
  30. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.mysql.repository.js +0 -0
  31. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.repository.d.ts +0 -0
  32. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/advanced/typeOrm.repository.js +0 -0
  33. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/basicTestSuite.d.ts +0 -0
  34. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/basicTestSuite.js +0 -0
  35. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.entity.d.ts +3 -3
  36. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.entity.js +1 -1
  37. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mongo.repository.d.ts +0 -0
  38. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mongo.repository.js +0 -0
  39. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mysql.repository.d.ts +0 -0
  40. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.mysql.repository.js +0 -0
  41. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.repository.d.ts +0 -0
  42. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/basic/goat.repository.js +0 -0
  43. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/dbEntities.d.ts +0 -0
  44. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/dbEntities.js +0 -0
  45. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/docker.d.ts +1 -1
  46. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/docker.js +3 -4
  47. package/dist/fluent/src/TypeOrmConnector/test/docker/mongo.d.ts +16 -0
  48. package/dist/fluent/src/TypeOrmConnector/test/docker/mongo.js +93 -0
  49. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/mysql.d.ts +0 -0
  50. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/docker/mysql.js +1 -1
  51. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/flock.d.ts +0 -0
  52. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/flock.js +0 -0
  53. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/car.mongo.repository.d.ts +4 -2
  54. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/car.mongo.repository.js +6 -1
  55. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/mongoDatasource.d.ts +0 -0
  56. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/mongoDatasource.js +0 -0
  57. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles.mongo.repository.d.ts +3 -2
  58. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles.mongo.repository.js +3 -1
  59. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles_user.mongo.repository.d.ts +0 -0
  60. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/roles_user.mongo.repository.js +0 -0
  61. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/user.mongo.repository.d.ts +2 -2
  62. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mongo/user.mongo.repository.js +2 -1
  63. package/dist/fluent/src/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +10 -0
  64. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/car.mysql.repository.js +10 -1
  65. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/mysqlDataSource.d.ts +0 -0
  66. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/mysqlDataSource.js +1 -1
  67. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles.mysql.repository.d.ts +3 -2
  68. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles.mysql.repository.js +3 -1
  69. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles_user.mysql.repository.d.ts +0 -0
  70. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/roles_user.mysql.repository.js +0 -0
  71. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/user.mysql.repository.d.ts +2 -2
  72. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/mysql/user.mysql.repository.js +2 -1
  73. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.entity.d.ts +0 -1
  74. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.entity.js +0 -8
  75. package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.output.schema.d.ts +511 -0
  76. package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.output.schema.js +8 -0
  77. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.repositoryTypeOrm.d.ts +4 -2
  78. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/car/car.repositoryTypeOrm.js +6 -1
  79. package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.schema.d.ts +15 -0
  80. package/dist/fluent/src/TypeOrmConnector/test/relations/car/car.schema.js +9 -0
  81. package/dist/fluent/src/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +1 -0
  82. package/dist/fluent/src/TypeOrmConnector/test/relations/relationsTestsSuite.js +549 -0
  83. package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.output.schema.d.ts +152 -0
  84. package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.output.schema.js +14 -0
  85. package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.schema.d.ts +12 -0
  86. package/dist/fluent/src/TypeOrmConnector/test/relations/roles/role.schema.js +8 -0
  87. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.entity.d.ts +0 -0
  88. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.entity.js +0 -0
  89. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.repositoryTypeOrm.d.ts +3 -2
  90. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles.repositoryTypeOrm.js +3 -1
  91. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.entity.d.ts +0 -0
  92. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.entity.js +0 -0
  93. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.schema.d.ts +0 -0
  94. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_user.schema.js +0 -0
  95. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_users.repositoryTypeOrm.d.ts +0 -0
  96. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/roles/roles_users.repositoryTypeOrm.js +0 -0
  97. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.entity.d.ts +0 -0
  98. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.entity.js +0 -0
  99. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.repositoryTypeOrm.d.ts +2 -2
  100. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/relations/user/user.repositoryTypeOrm.js +2 -1
  101. package/dist/fluent/src/TypeOrmConnector/test/relations/user/user.schema.d.ts +546 -0
  102. package/dist/fluent/src/TypeOrmConnector/test/relations/user/user.schema.js +67 -0
  103. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/sqlite/memoryDataSource.d.ts +0 -0
  104. package/dist/{TypeOrmConnector → fluent/src/TypeOrmConnector}/test/sqlite/memoryDataSource.js +0 -0
  105. package/dist/fluent/src/TypeOrmConnector/util/clearEmpties.d.ts +1 -0
  106. package/dist/fluent/src/TypeOrmConnector/util/clearEmpties.js +25 -0
  107. package/dist/fluent/src/TypeOrmConnector/util/extractConditions.d.ts +6 -0
  108. package/dist/fluent/src/TypeOrmConnector/util/extractConditions.js +80 -0
  109. package/dist/fluent/src/TypeOrmConnector/util/extractInclude.d.ts +2 -0
  110. package/dist/fluent/src/TypeOrmConnector/util/extractInclude.js +25 -0
  111. package/dist/fluent/src/TypeOrmConnector/util/extractMetadataFromKeys.d.ts +12 -0
  112. package/dist/fluent/src/TypeOrmConnector/util/extractMetadataFromKeys.js +42 -0
  113. package/dist/fluent/src/TypeOrmConnector/util/extractOrderBy.d.ts +4 -0
  114. package/dist/fluent/src/TypeOrmConnector/util/extractOrderBy.js +18 -0
  115. package/dist/fluent/src/TypeOrmConnector/util/getRelationsFromModelGenerator.d.ts +19 -0
  116. package/dist/fluent/src/TypeOrmConnector/util/getRelationsFromModelGenerator.js +26 -0
  117. package/dist/fluent/src/TypeOrmConnector/util/getSelectedKeysFromRawSql.d.ts +1 -0
  118. package/dist/fluent/src/TypeOrmConnector/util/getSelectedKeysFromRawSql.js +20 -0
  119. package/dist/fluent/src/TypeOrmConnector/util/isAnyObject.d.ts +1 -0
  120. package/dist/fluent/src/TypeOrmConnector/util/isAnyObject.js +7 -0
  121. package/dist/fluent/src/TypeOrmConnector/util/nestQueryResults.d.ts +2 -0
  122. package/dist/fluent/src/TypeOrmConnector/util/nestQueryResults.js +31 -0
  123. package/dist/{cache.d.ts → fluent/src/cache.d.ts} +0 -0
  124. package/dist/{cache.js → fluent/src/cache.js} +0 -0
  125. package/dist/{core → fluent/src/core}/Loopback/build-schema.d.ts +0 -0
  126. package/dist/{core → fluent/src/core}/Loopback/build-schema.js +0 -0
  127. package/dist/{core → fluent/src/core}/Loopback/common-types.d.ts +0 -0
  128. package/dist/{core → fluent/src/core}/Loopback/common-types.js +0 -0
  129. package/dist/{core → fluent/src/core}/Loopback/json-to-schema.d.ts +0 -0
  130. package/dist/{core → fluent/src/core}/Loopback/json-to-schema.js +0 -0
  131. package/dist/{core → fluent/src/core}/Loopback/mapValues.d.ts +0 -0
  132. package/dist/{core → fluent/src/core}/Loopback/mapValues.js +0 -0
  133. package/dist/{core → fluent/src/core}/Loopback/metadata.d.ts +0 -0
  134. package/dist/{core → fluent/src/core}/Loopback/metadata.js +0 -0
  135. package/dist/{core → fluent/src/core}/Loopback/model.d.ts +0 -0
  136. package/dist/{core → fluent/src/core}/Loopback/model.js +0 -0
  137. package/dist/{core → fluent/src/core}/Loopback/query.d.ts +0 -0
  138. package/dist/{core → fluent/src/core}/Loopback/query.js +0 -0
  139. package/dist/{core → fluent/src/core}/Loopback/relation.types.d.ts +0 -0
  140. package/dist/{core → fluent/src/core}/Loopback/relation.types.js +0 -0
  141. package/dist/{core → fluent/src/core}/Loopback/type-resolver.d.ts +0 -0
  142. package/dist/{core → fluent/src/core}/Loopback/type-resolver.js +0 -0
  143. package/dist/{core → fluent/src/core}/Loopback/type.d.ts +0 -0
  144. package/dist/{core/Nestjs/types/interfaces/base-type-options.interface.js → fluent/src/core/Loopback/type.js} +0 -0
  145. package/dist/{core → fluent/src/core}/Nestjs/applyDecorators.d.ts +0 -0
  146. package/dist/{core → fluent/src/core}/Nestjs/applyDecorators.js +0 -0
  147. package/dist/{core → fluent/src/core}/Nestjs/types/common.d.ts +0 -0
  148. package/dist/{core → fluent/src/core}/Nestjs/types/common.js +0 -0
  149. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-hide-property.decorator.d.ts +0 -0
  150. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-hide-property.decorator.js +0 -0
  151. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-property.decorator.d.ts +0 -0
  152. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/api-property.decorator.js +0 -0
  153. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/apply-is-optional.decorator.d.ts +0 -0
  154. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/apply-is-optional.decorator.js +0 -0
  155. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/args-type.decorator.d.ts +0 -0
  156. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/args-type.decorator.js +0 -0
  157. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/create-property.decorator.d.ts +0 -0
  158. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/create-property.decorator.js +0 -0
  159. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/directive.decorator.d.ts +0 -0
  160. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/directive.decorator.js +0 -0
  161. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/extensions.decorator.d.ts +0 -0
  162. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/extensions.decorator.js +0 -0
  163. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/field.decorator.d.ts +0 -0
  164. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/field.decorator.js +0 -0
  165. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/input-type.decorator.d.ts +0 -0
  166. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/input-type.decorator.js +0 -0
  167. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/interface-type.decorator.d.ts +0 -0
  168. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/interface-type.decorator.js +0 -0
  169. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/partial-type.helper.d.ts +0 -0
  170. package/dist/{core → fluent/src/core}/Nestjs/types/decorators/partial-type.helper.js +0 -0
  171. package/dist/{core → fluent/src/core}/Nestjs/types/errors/cannot-determine-host-type.error.d.ts +0 -0
  172. package/dist/{core → fluent/src/core}/Nestjs/types/errors/cannot-determine-host-type.error.js +0 -0
  173. package/dist/{core → fluent/src/core}/Nestjs/types/errors/directive-parsing.error.d.ts +0 -0
  174. package/dist/{core → fluent/src/core}/Nestjs/types/errors/directive-parsing.error.js +0 -0
  175. package/dist/{core → fluent/src/core}/Nestjs/types/errors/unable-to-find-fields.error.d.ts +0 -0
  176. package/dist/{core → fluent/src/core}/Nestjs/types/errors/unable-to-find-fields.error.js +0 -0
  177. package/dist/{core → fluent/src/core}/Nestjs/types/errors/undefined-type.error.d.ts +0 -0
  178. package/dist/{core → fluent/src/core}/Nestjs/types/errors/undefined-type.error.js +0 -0
  179. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/add-class-type-metadata.util.d.ts +0 -0
  180. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/add-class-type-metadata.util.js +0 -0
  181. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/base-type-options.interface.d.ts +0 -0
  182. package/dist/{core/Nestjs/types/interfaces/class-decorator-factory.interface.js → fluent/src/core/Nestjs/types/interfaces/base-type-options.interface.js} +0 -0
  183. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/class-decorator-factory.interface.d.ts +0 -0
  184. package/dist/{core/Nestjs/types/interfaces/complexity.interface.js → fluent/src/core/Nestjs/types/interfaces/class-decorator-factory.interface.js} +0 -0
  185. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/complexity.interface.d.ts +0 -0
  186. package/dist/{core/Nestjs/types/interfaces/field-middleware.interface.js → fluent/src/core/Nestjs/types/interfaces/complexity.interface.js} +0 -0
  187. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/field-middleware.interface.d.ts +0 -0
  188. package/dist/{core/Nestjs/types/interfaces/open-api-spec.interface.js → fluent/src/core/Nestjs/types/interfaces/field-middleware.interface.js} +0 -0
  189. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/open-api-spec.interface.d.ts +0 -0
  190. package/dist/{core/Nestjs/types/interfaces/resolve-type-fn.interface.js → fluent/src/core/Nestjs/types/interfaces/open-api-spec.interface.js} +0 -0
  191. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/resolve-type-fn.interface.d.ts +0 -0
  192. package/dist/{core/Nestjs/types/interfaces/return-type-func.interface.js → fluent/src/core/Nestjs/types/interfaces/resolve-type-fn.interface.js} +0 -0
  193. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/return-type-func.interface.d.ts +0 -0
  194. package/dist/{core/Nestjs/types/interfaces/schema-object-metadata.interface.js → fluent/src/core/Nestjs/types/interfaces/return-type-func.interface.js} +0 -0
  195. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/schema-object-metadata.interface.d.ts +0 -0
  196. package/dist/{core/Nestjs/types/interfaces/type-options.interface.js → fluent/src/core/Nestjs/types/interfaces/schema-object-metadata.interface.js} +0 -0
  197. package/dist/{core → fluent/src/core}/Nestjs/types/interfaces/type-options.interface.d.ts +0 -0
  198. package/dist/{core/Nestjs/types/metadata/class.metadata.js → fluent/src/core/Nestjs/types/interfaces/type-options.interface.js} +0 -0
  199. package/dist/{core → fluent/src/core}/Nestjs/types/lazy-metadata.storage.d.ts +0 -0
  200. package/dist/{core → fluent/src/core}/Nestjs/types/lazy-metadata.storage.js +0 -0
  201. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/class.metadata.d.ts +0 -0
  202. package/dist/{core/Nestjs/types/metadata/directive.metadata.js → fluent/src/core/Nestjs/types/metadata/class.metadata.js} +0 -0
  203. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/directive.metadata.d.ts +0 -0
  204. package/dist/{core/Nestjs/types/metadata/enum.metadata.js → fluent/src/core/Nestjs/types/metadata/directive.metadata.js} +0 -0
  205. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/enum.metadata.d.ts +0 -0
  206. package/dist/{core/Nestjs/types/metadata/extensions.metadata.js → fluent/src/core/Nestjs/types/metadata/enum.metadata.js} +0 -0
  207. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/extensions.metadata.d.ts +0 -0
  208. package/dist/{core/Nestjs/types/metadata/interface.metadata.js → fluent/src/core/Nestjs/types/metadata/extensions.metadata.js} +0 -0
  209. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/index.d.ts +0 -0
  210. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/index.js +0 -0
  211. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/interface.metadata.d.ts +0 -0
  212. package/dist/{core/Nestjs/types/metadata/object-type.metadata.js → fluent/src/core/Nestjs/types/metadata/interface.metadata.js} +0 -0
  213. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/object-type.metadata.d.ts +0 -0
  214. package/dist/{core/Nestjs/types/metadata/param.metadata.js → fluent/src/core/Nestjs/types/metadata/object-type.metadata.js} +0 -0
  215. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/param.metadata.d.ts +0 -0
  216. package/dist/{core/Nestjs/types/metadata/property.metadata.js → fluent/src/core/Nestjs/types/metadata/param.metadata.js} +0 -0
  217. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/property.metadata.d.ts +0 -0
  218. package/dist/{core/Nestjs/types/metadata/resolver.metadata.js → fluent/src/core/Nestjs/types/metadata/property.metadata.js} +0 -0
  219. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/resolver.metadata.d.ts +0 -0
  220. package/dist/{core/Nestjs/types/metadata/union.metadata.js → fluent/src/core/Nestjs/types/metadata/resolver.metadata.js} +0 -0
  221. package/dist/{core → fluent/src/core}/Nestjs/types/metadata/union.metadata.d.ts +0 -0
  222. package/dist/fluent/src/core/Nestjs/types/metadata/union.metadata.js +2 -0
  223. package/dist/{core → fluent/src/core}/Nestjs/types/object-type.decorator.d.ts +0 -0
  224. package/dist/{core → fluent/src/core}/Nestjs/types/object-type.decorator.js +0 -0
  225. package/dist/{core → fluent/src/core}/Nestjs/types/omit-type.d.ts +0 -0
  226. package/dist/{core → fluent/src/core}/Nestjs/types/omit-type.js +0 -0
  227. package/dist/{core → fluent/src/core}/Nestjs/types/reflection.utils.d.ts +0 -0
  228. package/dist/{core → fluent/src/core}/Nestjs/types/reflection.utils.js +0 -0
  229. package/dist/{core → fluent/src/core}/Nestjs/types/set-metadata.decorator.d.ts +0 -0
  230. package/dist/{core → fluent/src/core}/Nestjs/types/set-metadata.decorator.js +0 -0
  231. package/dist/{core → fluent/src/core}/Nestjs/types/type-metadata.storage.d.ts +0 -0
  232. package/dist/{core → fluent/src/core}/Nestjs/types/type-metadata.storage.js +0 -0
  233. package/dist/{core → fluent/src/core}/Nestjs/types/utils/enum.utils.d.ts +0 -0
  234. package/dist/{core → fluent/src/core}/Nestjs/types/utils/enum.utils.js +0 -0
  235. package/dist/{core → fluent/src/core}/Nestjs/types/utils/get-fields-and-decorator.util.d.ts +0 -0
  236. package/dist/{core → fluent/src/core}/Nestjs/types/utils/get-fields-and-decorator.util.js +0 -0
  237. package/dist/{core → fluent/src/core}/Nestjs/types/utils/mapped-types.utils.d.ts +0 -0
  238. package/dist/{core → fluent/src/core}/Nestjs/types/utils/mapped-types.utils.js +0 -0
  239. package/dist/{core → fluent/src/core}/Nestjs/types/utils/model-properties-accessor.d.ts +0 -0
  240. package/dist/{core → fluent/src/core}/Nestjs/types/utils/model-properties-accessor.js +0 -0
  241. package/dist/{core → fluent/src/core}/Nestjs/types/utils/type-helpers.utils.d.ts +0 -0
  242. package/dist/{core → fluent/src/core}/Nestjs/types/utils/type-helpers.utils.js +0 -0
  243. package/dist/{core → fluent/src/core}/types.d.ts +0 -0
  244. package/dist/{core → fluent/src/core}/types.js +0 -0
  245. package/dist/{decorators.d.ts → fluent/src/decorators.d.ts} +0 -0
  246. package/dist/{decorators.js → fluent/src/decorators.js} +0 -0
  247. package/dist/{generatorDatasource.d.ts → fluent/src/generatorDatasource.d.ts} +0 -0
  248. package/dist/{generatorDatasource.js → fluent/src/generatorDatasource.js} +0 -0
  249. package/dist/{index.d.ts → fluent/src/index.d.ts} +5 -4
  250. package/dist/{index.js → fluent/src/index.js} +2 -1
  251. package/dist/{loadRelations.d.ts → fluent/src/loadRelations.d.ts} +0 -0
  252. package/dist/{loadRelations.js → fluent/src/loadRelations.js} +8 -10
  253. package/dist/{outputKeys.d.ts → fluent/src/outputKeys.d.ts} +0 -0
  254. package/dist/{outputKeys.js → fluent/src/outputKeys.js} +0 -0
  255. package/dist/{types.d.ts → fluent/src/types.d.ts} +37 -20
  256. package/dist/{types.js → fluent/src/types.js} +0 -0
  257. package/dist/fluent-firebase/src/test/firebase.d.ts +16 -0
  258. package/dist/fluent-firebase/src/test/firebase.js +93 -0
  259. package/dist/tsconfig.tsbuildinfo +1 -1
  260. package/package.json +4 -3
  261. package/CHANGELOG.md +0 -1072
  262. package/dist/TypeOrmConnector/TypeOrmConnector.js +0 -760
  263. package/dist/TypeOrmConnector/test/mongo/mongo.memory.d.ts +0 -4
  264. package/dist/TypeOrmConnector/test/mongo/mongo.memory.js +0 -43
  265. package/dist/TypeOrmConnector/test/mysql/car.mysql.repository.d.ts +0 -6
  266. package/dist/TypeOrmConnector/test/relations/car/car.schema.d.ts +0 -38
  267. package/dist/TypeOrmConnector/test/relations/car/car.schema.js +0 -14
  268. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.d.ts +0 -1
  269. package/dist/TypeOrmConnector/test/relations/relationsTestsSuite.js +0 -149
  270. package/dist/TypeOrmConnector/test/relations/roles/role.schema.d.ts +0 -35
  271. package/dist/TypeOrmConnector/test/relations/roles/role.schema.js +0 -16
  272. package/dist/TypeOrmConnector/test/relations/user/user.schema.d.ts +0 -150
  273. package/dist/TypeOrmConnector/test/relations/user/user.schema.js +0 -18
@@ -1,760 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypeOrmConnector = exports.getRelationsFromModelGenerator = void 0;
4
- const types_1 = require("./../types");
5
- const typeorm_1 = require("typeorm");
6
- const js_utils_1 = require("@goatlab/js-utils");
7
- const BaseConnector_1 = require("../BaseConnector");
8
- const outputKeys_1 = require("../outputKeys");
9
- const generatorDatasource_1 = require("../generatorDatasource");
10
- const getRelationsFromModelGenerator = (typeOrmRepo) => {
11
- const relations = {};
12
- for (const relation of typeOrmRepo.metadata.relations) {
13
- const pPath = relation.inverseRelation?.joinColumns[0];
14
- relations[relation.propertyName] = {
15
- isOneToMany: relation.isOneToMany,
16
- isManyToOne: relation.isManyToOne,
17
- isManyToMany: relation.isManyToMany,
18
- inverseSidePropertyRelationPath: relation.inverseSidePropertyPath,
19
- inverseSidePropertyPath: pPath?.propertyPath,
20
- propertyName: relation.propertyName,
21
- entityName: relation.inverseEntityMetadata.name,
22
- tableName: relation.inverseEntityMetadata.tableName,
23
- targetClass: relation.inverseEntityMetadata.target,
24
- joinColumns: relation.joinColumns,
25
- inverseJoinColumns: relation.inverseJoinColumns
26
- };
27
- }
28
- return {
29
- relations
30
- };
31
- };
32
- exports.getRelationsFromModelGenerator = getRelationsFromModelGenerator;
33
- class TypeOrmConnector extends BaseConnector_1.BaseConnector {
34
- constructor({ entity, dataSource, inputSchema, outputSchema }) {
35
- super();
36
- this.dataSource = dataSource;
37
- this.inputSchema = inputSchema;
38
- this.outputSchema =
39
- outputSchema || inputSchema;
40
- this.entity = entity;
41
- this.repository = this.dataSource.getRepository(entity);
42
- this.isMongoDB =
43
- this.repository.metadata.connection.driver.options.type === 'mongodb';
44
- if (this.isMongoDB) {
45
- this.repository = this.dataSource.getMongoRepository(entity);
46
- }
47
- const relationShipBuilder = generatorDatasource_1.modelGeneratorDataSource.getRepository(entity);
48
- const { relations } = (0, exports.getRelationsFromModelGenerator)(relationShipBuilder);
49
- this.modelRelations = relations;
50
- this.outputKeys = (0, outputKeys_1.getOutputKeys)(relationShipBuilder) || [];
51
- }
52
- async insert(data) {
53
- const validatedData = this.inputSchema.parse(data);
54
- let datum = await this.repository.save(validatedData);
55
- if (this.isMongoDB) {
56
- datum['id'] = datum['id'].toString();
57
- }
58
- return this.outputSchema.parse(this.clearEmpties(js_utils_1.Objects.deleteNulls(datum)));
59
- }
60
- async insertMany(data) {
61
- const validatedData = this.inputSchema.array().parse(data);
62
- const inserted = await this.repository.save(validatedData, {
63
- chunk: data.length / 300
64
- });
65
- return this.outputSchema.array().parse(inserted.map(d => {
66
- if (this.isMongoDB) {
67
- d['id'] = d['id'].toString();
68
- }
69
- return this.clearEmpties(js_utils_1.Objects.deleteNulls(d));
70
- }));
71
- }
72
- async findMany(query) {
73
- if (this.isMongoDB && query?.include) {
74
- const mongoRelationResult = this.customMongoRelatedSearch(query);
75
- return mongoRelationResult;
76
- }
77
- const generatedQuery = this.generateTypeOrmQuery(query);
78
- let [found, count] = await this.repository.findAndCount(generatedQuery);
79
- found.map(d => {
80
- if (this.isMongoDB) {
81
- d['id'] = d['id'].toString();
82
- }
83
- this.clearEmpties(js_utils_1.Objects.deleteNulls(d));
84
- });
85
- if (query?.paginated) {
86
- const paginationInfo = {
87
- total: count,
88
- perPage: query.paginated.perPage,
89
- currentPage: query.paginated.page,
90
- nextPage: query.paginated.page + 1,
91
- firstPage: 1,
92
- lastPage: Math.ceil(count / query.paginated.perPage),
93
- prevPage: query.paginated.page === 1 ? null : query.paginated.page - 1,
94
- from: (query.paginated.page - 1) * query.paginated.perPage + 1,
95
- to: query.paginated.perPage * query.paginated.page,
96
- data: found
97
- };
98
- return paginationInfo;
99
- }
100
- if (query?.select) {
101
- return found;
102
- }
103
- return this.outputSchema?.array().parse(found);
104
- }
105
- async updateById(id, data) {
106
- const parsedId = this.isMongoDB
107
- ? js_utils_1.Ids.objectID(id)
108
- : id;
109
- const idFieldName = this.isMongoDB ? '_id' : 'id';
110
- const dataToInsert = this.outputKeys.includes('updated')
111
- ? {
112
- ...data,
113
- ...{ updated: new Date() }
114
- }
115
- : data;
116
- const validatedData = this.inputSchema.parse(dataToInsert);
117
- const updateResults = await this.repository.update(id, validatedData);
118
- if (updateResults.affected === 0) {
119
- throw new Error('No rows where affected');
120
- }
121
- const dbResult = await this.repository.findOneOrFail({
122
- where: {
123
- [idFieldName]: parsedId
124
- }
125
- });
126
- if (this.isMongoDB) {
127
- dbResult['id'] = dbResult['id'].toString();
128
- }
129
- return this.outputSchema?.parse(this.clearEmpties(js_utils_1.Objects.deleteNulls(dbResult)));
130
- }
131
- async replaceById(id, data) {
132
- const parsedId = this.isMongoDB
133
- ? js_utils_1.Ids.objectID(id)
134
- : id;
135
- const idFieldName = this.isMongoDB ? '_id' : 'id';
136
- const value = await this.repository.findOneOrFail({
137
- where: {
138
- [idFieldName]: parsedId
139
- }
140
- });
141
- const flatValue = js_utils_1.Objects.flatten(JSON.parse(JSON.stringify(value)));
142
- Object.keys(flatValue).forEach(key => {
143
- flatValue[key] = null;
144
- });
145
- const nullObject = js_utils_1.Objects.nest(flatValue);
146
- const newValue = { ...nullObject, ...data };
147
- delete newValue._id;
148
- delete newValue.id;
149
- delete newValue.created;
150
- delete newValue.updated;
151
- const dataToInsert = this.outputKeys.includes('updated')
152
- ? {
153
- ...data,
154
- ...{ updated: new Date() }
155
- }
156
- : data;
157
- const validatedData = this.inputSchema.parse(dataToInsert);
158
- const updateResults = await this.repository.update(id, validatedData);
159
- if (updateResults.affected === 0) {
160
- throw new Error('No rows where affected');
161
- }
162
- const val = await this.repository.findOneOrFail({
163
- where: {
164
- [idFieldName]: parsedId
165
- }
166
- });
167
- if (this.isMongoDB) {
168
- val['id'] = val['id'].toString();
169
- }
170
- return this.outputSchema.parse(this.clearEmpties(js_utils_1.Objects.deleteNulls(val)));
171
- }
172
- async deleteById(id) {
173
- const parsedId = this.isMongoDB
174
- ? js_utils_1.Ids.objectID(id)
175
- : id;
176
- await this.repository.delete(parsedId);
177
- return id;
178
- }
179
- async clear() {
180
- await this.repository.clear();
181
- return true;
182
- }
183
- loadFirst(query) {
184
- const newInstance = this.clone();
185
- newInstance.setRelatedQuery({
186
- entity: this.entity,
187
- repository: this,
188
- query: {
189
- ...query,
190
- limit: 1
191
- }
192
- });
193
- return newInstance;
194
- }
195
- loadById(id) {
196
- const newInstance = this.clone();
197
- newInstance.setRelatedQuery({
198
- entity: this.entity,
199
- repository: this,
200
- query: {
201
- where: {
202
- id
203
- }
204
- }
205
- });
206
- return newInstance;
207
- }
208
- raw() {
209
- return this.repository;
210
- }
211
- mongoRaw() {
212
- return this.repository;
213
- }
214
- clone() {
215
- return new this.constructor();
216
- }
217
- getOrderBy(orderBy) {
218
- if (!orderBy || orderBy.length === 0) {
219
- return {};
220
- }
221
- const order = {};
222
- for (const orderElement of orderBy) {
223
- const flattenOrder = js_utils_1.Objects.flatten(orderElement);
224
- for (const k of Object.keys(flattenOrder)) {
225
- order[k] = flattenOrder[k];
226
- }
227
- }
228
- return js_utils_1.Objects.nest(order);
229
- }
230
- getMongoSelect(select) {
231
- const selected = js_utils_1.Objects.flatten(select || {});
232
- for (const k of Object.keys(selected)) {
233
- if (k === 'id') {
234
- delete selected[k];
235
- selected['_id'] = 1;
236
- continue;
237
- }
238
- const containsId = k.lastIndexOf('.id');
239
- if (containsId >= 0 && containsId + 3 === k.length) {
240
- selected[`${k.replace('.id', '')}._id`] = 1;
241
- delete selected[k];
242
- continue;
243
- }
244
- selected[k] = 1;
245
- }
246
- return selected;
247
- }
248
- getMongoLookup(include) {
249
- if (!include) {
250
- return [];
251
- }
252
- const lookUps = [];
253
- for (const relation of Object.keys(include)) {
254
- if (this.modelRelations[relation]) {
255
- const dbRelation = this.modelRelations[relation];
256
- if (dbRelation.isManyToOne) {
257
- const localField = dbRelation.joinColumns[0].propertyPath;
258
- lookUps.push({
259
- $addFields: {
260
- [`${localField}_object`]: { $toObjectId: `$${localField}` }
261
- }
262
- });
263
- lookUps.push({ $addFields: { id: { $toString: '$_id' } } });
264
- lookUps.push({
265
- $lookup: {
266
- from: dbRelation.tableName,
267
- localField: `${localField}_object`,
268
- foreignField: '_id',
269
- as: dbRelation.propertyName,
270
- pipeline: [
271
- { $addFields: { id: { $toString: '$_id' } } }
272
- ]
273
- }
274
- });
275
- lookUps.push({ $unwind: `$${dbRelation.propertyName}` });
276
- }
277
- if (dbRelation.isOneToMany) {
278
- lookUps.push({ $addFields: { string_id: { $toString: '$_id' } } });
279
- lookUps.push({ $addFields: { id: { $toString: '$_id' } } });
280
- lookUps.push({
281
- $lookup: {
282
- from: dbRelation.tableName,
283
- localField: 'string_id',
284
- foreignField: dbRelation.inverseSidePropertyPath,
285
- as: dbRelation.propertyName,
286
- pipeline: [
287
- { $addFields: { id: { $toString: '$_id' } } }
288
- ]
289
- }
290
- });
291
- }
292
- if (dbRelation.isManyToMany) {
293
- const relatedTableName = dbRelation.tableName;
294
- const pivotTableName = dbRelation.joinColumns[0].relationMetadata.joinTableName;
295
- const pivotForeignField = dbRelation.joinColumns[0].propertyPath;
296
- const inverseForeignField = dbRelation.inverseJoinColumns[0].propertyPath;
297
- if (!relatedTableName ||
298
- !pivotTableName ||
299
- !pivotForeignField ||
300
- !inverseForeignField) {
301
- throw new Error(`Your many to many relation is not properly set up. Please check both your models and schema for relation: ${relation}`);
302
- }
303
- lookUps.push({ $addFields: { id: { $toString: '$_id' } } });
304
- lookUps.push({
305
- $addFields: { parent_string_id: { $toString: '$_id' } }
306
- });
307
- lookUps.push({
308
- $lookup: {
309
- from: pivotTableName,
310
- localField: 'parent_string_id',
311
- foreignField: pivotForeignField,
312
- as: dbRelation.propertyName,
313
- pipeline: [
314
- { $addFields: { id: { $toString: '$_id' } } },
315
- {
316
- $addFields: {
317
- [`${inverseForeignField}_object`]: {
318
- $toObjectId: `$${inverseForeignField}`
319
- }
320
- }
321
- },
322
- {
323
- $lookup: {
324
- from: relatedTableName,
325
- localField: `${inverseForeignField}_object`,
326
- foreignField: '_id',
327
- pipeline: [
328
- { $addFields: { id: { $toString: '$_id' } } }
329
- ],
330
- as: dbRelation.propertyName
331
- }
332
- },
333
- { $unwind: `$${dbRelation.propertyName}` },
334
- {
335
- $project: {
336
- [dbRelation.propertyName]: `$${dbRelation.propertyName}`,
337
- pivot: '$$ROOT'
338
- }
339
- },
340
- {
341
- $replaceRoot: {
342
- newRoot: {
343
- $mergeObjects: ['$$ROOT', `$${dbRelation.propertyName}`]
344
- }
345
- }
346
- },
347
- { $project: { [dbRelation.propertyName]: 0 } }
348
- ]
349
- }
350
- });
351
- }
352
- }
353
- }
354
- return lookUps;
355
- }
356
- async customMongoRelatedSearch(query) {
357
- const where = this.getTypeOrmMongoWhere(query?.where);
358
- const selected = this.getMongoSelect(query?.select);
359
- const lookups = this.getMongoLookup(query?.include);
360
- const aggregate = [
361
- {
362
- $match: where
363
- }
364
- ];
365
- if (query?.limit) {
366
- aggregate.push({ $limit: query.limit });
367
- }
368
- for (const lookup of lookups) {
369
- aggregate.push(lookup);
370
- }
371
- if (selected && Object.keys(selected).length) {
372
- aggregate.push({
373
- $project: selected
374
- });
375
- }
376
- let raw = await this.mongoRaw().aggregate(aggregate).toArray();
377
- return this.outputSchema?.array().parse(raw);
378
- }
379
- generateTypeOrmQuery(query) {
380
- let filter = {};
381
- filter.where = this.isMongoDB
382
- ? this.getTypeOrmMongoWhere(query?.where)
383
- : this.getTypeOrmWhere(query?.where);
384
- filter.take = query?.limit;
385
- filter.skip = query?.offset;
386
- if (query?.paginated) {
387
- filter.take = query.paginated.perPage;
388
- filter.skip = (query.paginated?.page - 1) * query?.paginated.perPage;
389
- }
390
- if (query?.select) {
391
- const selectQuery = js_utils_1.Objects.flatten(query?.select || {});
392
- if (this.isMongoDB) {
393
- filter.select = Object.keys(selectQuery);
394
- }
395
- else {
396
- filter.select = selectQuery;
397
- }
398
- }
399
- filter.order = this.getOrderBy(query?.orderBy);
400
- filter.relations = query?.include;
401
- return filter;
402
- }
403
- getTypeOrmWhere(where) {
404
- if (!where || Object.keys(where).length === 0) {
405
- return {};
406
- }
407
- const Filters = { where: [{}] };
408
- const orConditions = this.extractConditions(where['OR']);
409
- const andConditions = this.extractConditions(where['AND']);
410
- const copy = js_utils_1.Objects.clone(where);
411
- if (!!copy['AND']) {
412
- delete copy['AND'];
413
- }
414
- if (!!copy['OR']) {
415
- delete copy['OR'];
416
- }
417
- const rootLevelConditions = this.extractConditions([copy]);
418
- for (const condition of andConditions) {
419
- const { element, operator, value } = condition;
420
- switch (operator) {
421
- case types_1.LogicOperator.equals:
422
- Filters.where[0] = js_utils_1.Objects.nest({
423
- ...Filters.where[0],
424
- ...{ [element]: (0, typeorm_1.Equal)(value) }
425
- });
426
- break;
427
- case types_1.LogicOperator.isNot:
428
- Filters.where[0] = js_utils_1.Objects.nest({
429
- ...Filters.where[0],
430
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) }
431
- });
432
- break;
433
- case types_1.LogicOperator.greaterThan:
434
- Filters.where[0] = js_utils_1.Objects.nest({
435
- ...Filters.where[0],
436
- ...{ [element]: (0, typeorm_1.MoreThan)(value) }
437
- });
438
- break;
439
- case types_1.LogicOperator.greaterOrEqualThan:
440
- Filters.where[0] = js_utils_1.Objects.nest({
441
- ...Filters.where[0],
442
- ...{ [element]: (0, typeorm_1.MoreThanOrEqual)(value) }
443
- });
444
- break;
445
- case types_1.LogicOperator.lessThan:
446
- Filters.where[0] = js_utils_1.Objects.nest({
447
- ...Filters.where[0],
448
- ...{ [element]: (0, typeorm_1.LessThan)(value) }
449
- });
450
- break;
451
- case types_1.LogicOperator.lessOrEqualThan:
452
- Filters.where[0] = js_utils_1.Objects.nest({
453
- ...Filters.where[0],
454
- ...{ [element]: (0, typeorm_1.LessThanOrEqual)(value) }
455
- });
456
- break;
457
- case types_1.LogicOperator.in:
458
- Filters.where[0] = js_utils_1.Objects.nest({
459
- ...Filters.where[0],
460
- ...{ [element]: (0, typeorm_1.In)(value) }
461
- });
462
- break;
463
- case types_1.LogicOperator.notIn:
464
- Filters.where[0] = js_utils_1.Objects.nest({
465
- ...Filters.where[0],
466
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) }
467
- });
468
- break;
469
- case types_1.LogicOperator.exists:
470
- Filters.where[0] = js_utils_1.Objects.nest({
471
- ...Filters.where[0],
472
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) }
473
- });
474
- break;
475
- case types_1.LogicOperator.notExists:
476
- Filters.where[0] = js_utils_1.Objects.nest({
477
- ...Filters.where[0],
478
- ...{ [element]: (0, typeorm_1.IsNull)() }
479
- });
480
- break;
481
- case types_1.LogicOperator.regexp:
482
- Filters.where[0] = js_utils_1.Objects.nest({
483
- ...Filters.where[0],
484
- ...{ [element]: (0, typeorm_1.Like)(value) }
485
- });
486
- break;
487
- }
488
- }
489
- for (const condition of rootLevelConditions) {
490
- const { element, operator, value } = condition;
491
- switch (operator) {
492
- case types_1.LogicOperator.equals:
493
- Filters.where[0] = js_utils_1.Objects.nest({
494
- ...Filters.where[0],
495
- ...{ [element]: (0, typeorm_1.Equal)(value) }
496
- });
497
- break;
498
- case types_1.LogicOperator.isNot:
499
- Filters.where[0] = js_utils_1.Objects.nest({
500
- ...Filters.where[0],
501
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) }
502
- });
503
- break;
504
- case types_1.LogicOperator.greaterThan:
505
- Filters.where[0] = js_utils_1.Objects.nest({
506
- ...Filters.where[0],
507
- ...{ [element]: (0, typeorm_1.MoreThan)(value) }
508
- });
509
- break;
510
- case types_1.LogicOperator.greaterOrEqualThan:
511
- Filters.where[0] = js_utils_1.Objects.nest({
512
- ...Filters.where[0],
513
- ...{ [element]: (0, typeorm_1.MoreThanOrEqual)(value) }
514
- });
515
- break;
516
- case types_1.LogicOperator.lessThan:
517
- Filters.where[0] = js_utils_1.Objects.nest({
518
- ...Filters.where[0],
519
- ...{ [element]: (0, typeorm_1.LessThan)(value) }
520
- });
521
- break;
522
- case types_1.LogicOperator.lessOrEqualThan:
523
- Filters.where[0] = js_utils_1.Objects.nest({
524
- ...Filters.where[0],
525
- ...{ [element]: (0, typeorm_1.LessThanOrEqual)(value) }
526
- });
527
- break;
528
- case types_1.LogicOperator.in:
529
- Filters.where[0] = js_utils_1.Objects.nest({
530
- ...Filters.where[0],
531
- ...{ [element]: (0, typeorm_1.In)(value) }
532
- });
533
- break;
534
- case types_1.LogicOperator.notIn:
535
- Filters.where[0] = js_utils_1.Objects.nest({
536
- ...Filters.where[0],
537
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) }
538
- });
539
- break;
540
- case types_1.LogicOperator.exists:
541
- Filters.where[0] = js_utils_1.Objects.nest({
542
- ...Filters.where[0],
543
- ...{ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) }
544
- });
545
- break;
546
- case types_1.LogicOperator.notExists:
547
- Filters.where[0] = js_utils_1.Objects.nest({
548
- ...Filters.where[0],
549
- ...{ [element]: (0, typeorm_1.IsNull)() }
550
- });
551
- break;
552
- case types_1.LogicOperator.regexp:
553
- Filters.where[0] = js_utils_1.Objects.nest({
554
- ...Filters.where[0],
555
- ...{ [element]: (0, typeorm_1.Like)(value) }
556
- });
557
- break;
558
- }
559
- }
560
- for (const condition of orConditions) {
561
- const { element, operator, value } = condition;
562
- switch (operator) {
563
- case types_1.LogicOperator.equals:
564
- Filters.where.push({ [element]: (0, typeorm_1.Equal)(value) });
565
- break;
566
- case types_1.LogicOperator.isNot:
567
- Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.Equal)(value)) });
568
- break;
569
- case types_1.LogicOperator.greaterThan:
570
- Filters.where.push({ [element]: (0, typeorm_1.MoreThan)(value) });
571
- break;
572
- case types_1.LogicOperator.greaterOrEqualThan:
573
- Filters.where.push({ [element]: (0, typeorm_1.MoreThanOrEqual)(value) });
574
- break;
575
- case types_1.LogicOperator.lessThan:
576
- Filters.where.push({ [element]: (0, typeorm_1.LessThan)(value) });
577
- break;
578
- case types_1.LogicOperator.lessOrEqualThan:
579
- Filters.where.push({ [element]: (0, typeorm_1.LessThanOrEqual)(value) });
580
- break;
581
- case types_1.LogicOperator.in:
582
- Filters.where.push({ [element]: (0, typeorm_1.In)(value) });
583
- break;
584
- case types_1.LogicOperator.notIn:
585
- Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.In)(value)) });
586
- break;
587
- case types_1.LogicOperator.exists:
588
- Filters.where.push({ [element]: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) });
589
- break;
590
- case types_1.LogicOperator.notExists:
591
- Filters.where.push({ [element]: (0, typeorm_1.IsNull)() });
592
- break;
593
- case types_1.LogicOperator.regexp:
594
- Filters.where.push({ [element]: (0, typeorm_1.Like)(value) });
595
- break;
596
- }
597
- }
598
- const filtered = this.clearEmpties(Filters.where);
599
- return filtered;
600
- }
601
- getTypeOrmMongoWhere(where) {
602
- if (!where || Object.keys(where).length === 0) {
603
- return {};
604
- }
605
- const Filters = {
606
- where: { $or: [{ $and: [] }] }
607
- };
608
- const orConditions = this.extractConditions(where['OR']);
609
- const andConditions = this.extractConditions(where['AND']);
610
- const copy = js_utils_1.Objects.clone(where);
611
- if (!!copy['AND']) {
612
- delete copy['AND'];
613
- }
614
- if (!!copy['OR']) {
615
- delete copy['OR'];
616
- }
617
- const rootLevelConditions = this.extractConditions([copy]);
618
- for (const condition of andConditions) {
619
- let { element, operator, value } = condition;
620
- if (element === 'id') {
621
- element = '_id';
622
- value = (Array.isArray(value)
623
- ? value.map(v => js_utils_1.Ids.objectID(v))
624
- : js_utils_1.Ids.objectID(value));
625
- }
626
- switch (operator) {
627
- case types_1.LogicOperator.equals:
628
- Filters.where.$or[0].$and.push({ [element]: { $eq: value } });
629
- break;
630
- case types_1.LogicOperator.isNot:
631
- Filters.where.$or[0].$and.push({ [element]: { $neq: value } });
632
- break;
633
- case types_1.LogicOperator.greaterThan:
634
- Filters.where.$or[0].$and.push({ [element]: { $gt: value } });
635
- break;
636
- case types_1.LogicOperator.greaterOrEqualThan:
637
- Filters.where.$or[0].$and.push({ [element]: { $gte: value } });
638
- break;
639
- case types_1.LogicOperator.lessThan:
640
- Filters.where.$or[0].$and.push({ [element]: { $lt: value } });
641
- break;
642
- case types_1.LogicOperator.lessOrEqualThan:
643
- Filters.where.$or[0].$and.push({ [element]: { $lte: value } });
644
- break;
645
- case types_1.LogicOperator.in:
646
- Filters.where.$or[0].$and.push({ [element]: { $in: value } });
647
- break;
648
- case types_1.LogicOperator.notIn:
649
- Filters.where.$or[0].$and.push({
650
- [element]: { $not: { $in: value } }
651
- });
652
- break;
653
- case types_1.LogicOperator.exists:
654
- Filters.where.$or[0].$and.push({ [element]: { $exists: true } });
655
- break;
656
- case types_1.LogicOperator.notExists:
657
- Filters.where.$or[0].$and.push({ [element]: { $exists: false } });
658
- break;
659
- case types_1.LogicOperator.regexp:
660
- Filters.where.$or[0].$and.push({ [element]: { $regex: value } });
661
- break;
662
- }
663
- }
664
- for (const condition of rootLevelConditions) {
665
- let { element, operator, value } = condition;
666
- if (element === 'id') {
667
- element = '_id';
668
- value = (Array.isArray(value)
669
- ? value.map(v => js_utils_1.Ids.objectID(v))
670
- : js_utils_1.Ids.objectID(value));
671
- }
672
- switch (operator) {
673
- case types_1.LogicOperator.equals:
674
- Filters.where.$or[0].$and.push({ [element]: { $eq: value } });
675
- break;
676
- case types_1.LogicOperator.isNot:
677
- Filters.where.$or[0].$and.push({ [element]: { $neq: value } });
678
- break;
679
- case types_1.LogicOperator.greaterThan:
680
- Filters.where.$or[0].$and.push({ [element]: { $gt: value } });
681
- break;
682
- case types_1.LogicOperator.greaterOrEqualThan:
683
- Filters.where.$or[0].$and.push({ [element]: { $gte: value } });
684
- break;
685
- case types_1.LogicOperator.lessThan:
686
- Filters.where.$or[0].$and.push({ [element]: { $lt: value } });
687
- break;
688
- case types_1.LogicOperator.lessOrEqualThan:
689
- Filters.where.$or[0].$and.push({ [element]: { $lte: value } });
690
- break;
691
- case types_1.LogicOperator.in:
692
- Filters.where.$or[0].$and.push({ [element]: { $in: value } });
693
- break;
694
- case types_1.LogicOperator.notIn:
695
- Filters.where.$or[0].$and.push({
696
- [element]: { $not: { $in: value } }
697
- });
698
- break;
699
- case types_1.LogicOperator.exists:
700
- Filters.where.$or[0].$and.push({ [element]: { $exists: true } });
701
- break;
702
- case types_1.LogicOperator.notExists:
703
- Filters.where.$or[0].$and.push({ [element]: { $exists: false } });
704
- break;
705
- case types_1.LogicOperator.regexp:
706
- Filters.where.$or[0].$and.push({ [element]: { $regex: value } });
707
- break;
708
- }
709
- }
710
- for (const condition of orConditions) {
711
- let { element, operator, value } = condition;
712
- if (element === 'id') {
713
- element = '_id';
714
- value = (Array.isArray(value)
715
- ? value.map(v => js_utils_1.Ids.objectID(v))
716
- : js_utils_1.Ids.objectID(value));
717
- }
718
- switch (operator) {
719
- case types_1.LogicOperator.equals:
720
- Filters.where.$or.push({ [element]: { $eq: value } });
721
- break;
722
- case types_1.LogicOperator.isNot:
723
- Filters.where.$or.push({ [element]: { $neq: value } });
724
- break;
725
- case types_1.LogicOperator.greaterThan:
726
- Filters.where.$or.push({ [element]: { $gt: value } });
727
- break;
728
- case types_1.LogicOperator.greaterOrEqualThan:
729
- Filters.where.$or.push({ [element]: { $gte: value } });
730
- break;
731
- case types_1.LogicOperator.lessThan:
732
- Filters.where.$or.push({ [element]: { $lt: value } });
733
- break;
734
- case types_1.LogicOperator.lessOrEqualThan:
735
- Filters.where.$or.push({ [element]: { $lte: value } });
736
- break;
737
- case types_1.LogicOperator.in:
738
- Filters.where.$or.push({ [element]: { $in: value } });
739
- break;
740
- case types_1.LogicOperator.notIn:
741
- Filters.where.$or.push({
742
- [element]: { $not: { $in: value } }
743
- });
744
- break;
745
- case types_1.LogicOperator.exists:
746
- Filters.where.$or.push({ [element]: { $exists: true } });
747
- break;
748
- case types_1.LogicOperator.notExists:
749
- Filters.where.$or.push({ [element]: { $exists: false } });
750
- break;
751
- case types_1.LogicOperator.regexp:
752
- Filters.where.$or.push({ [element]: { $regex: value } });
753
- break;
754
- }
755
- }
756
- const filtered = this.clearEmpties(Filters.where);
757
- return filtered;
758
- }
759
- }
760
- exports.TypeOrmConnector = TypeOrmConnector;