@goatlab/fluent 0.7.20 → 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 -370
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goatlab/fluent",
3
- "version": "0.7.20",
3
+ "version": "0.7.21",
4
4
  "description": "Readable query Interface & API generator for TS and Node",
5
5
  "scripts": {
6
6
  "install-p": "yarn",
@@ -16,7 +16,7 @@
16
16
  "build": "tsc"
17
17
  },
18
18
  "dependencies": {
19
- "@goatlab/js-utils": "^0.8.16",
19
+ "@goatlab/js-utils": "^0.8.17",
20
20
  "@loopback/metadata": "^4.1.2",
21
21
  "bson": "^4.6.2",
22
22
  "graphql": "^16.3.0",
@@ -1,43 +0,0 @@
1
- import { Collection } from '@goatlab/js-utils';
2
- import { FindByIdFilter, FluentHasManyParams, FluentBelongsToParams, FluentBelongsToManyParams, FluentQuery, Primitives, QueryFieldSelector, QueryOutput, AnyObject } from './types';
3
- export declare abstract class BaseConnector<ModelDTO, InputDTO, OutputDTO> {
4
- protected outputKeys: string[];
5
- protected relatedQuery?: {
6
- entity: new () => ModelDTO;
7
- query?: FluentQuery<ModelDTO>;
8
- repository?: any;
9
- key?: string;
10
- pivot?: any;
11
- };
12
- protected chunk: null;
13
- protected pullSize: null;
14
- protected paginator: undefined;
15
- protected rawQuery: undefined;
16
- protected modelRelations: any;
17
- isMongoDB: boolean;
18
- constructor();
19
- insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
20
- updateById(id: string, data: InputDTO): Promise<OutputDTO>;
21
- findMany<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>[]>;
22
- findFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO> | null>;
23
- requireById(id: string, q?: FindByIdFilter<ModelDTO>): Promise<QueryOutput<FindByIdFilter<ModelDTO>, ModelDTO>>;
24
- requireFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>>;
25
- findByIds<T extends FindByIdFilter<ModelDTO>>(ids: string[], q?: T): Promise<QueryOutput<T, ModelDTO>[]>;
26
- findById<T extends FindByIdFilter<ModelDTO>>(id: string, q?: T): Promise<QueryOutput<T, ModelDTO> | null>;
27
- collect(query: FluentQuery<ModelDTO>): Promise<Collection<OutputDTO>>;
28
- pluck(path: QueryFieldSelector<ModelDTO>, query?: FluentQuery<ModelDTO>): Promise<Primitives[]>;
29
- protected setRelatedQuery(r: {
30
- entity: new () => ModelDTO;
31
- query?: FluentQuery<ModelDTO>;
32
- repository?: any;
33
- key?: string;
34
- }): void;
35
- associate(data: InputDTO | OutputDTO): Promise<OutputDTO[]>;
36
- attach(id: string, pivot?: AnyObject): Promise<any>;
37
- protected hasMany<T extends FluentHasManyParams<T>>(r: T): InstanceType<T['repository']>;
38
- protected belongsTo<T extends FluentBelongsToParams<T>>(r: T): InstanceType<T['repository']>;
39
- protected hasOne(): void;
40
- protected belongsToMany<T extends FluentBelongsToManyParams<T>>(r: T): InstanceType<T['repository']>;
41
- protected hasManyThrough(): void;
42
- protected jsApplySelect(select: FluentQuery<ModelDTO>['select'], data: ModelDTO[]): ModelDTO[];
43
- }
@@ -1,257 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseConnector = void 0;
4
- const js_utils_1 = require("@goatlab/js-utils");
5
- const clearEmpties_1 = require("./TypeOrmConnector/util/clearEmpties");
6
- class BaseConnector {
7
- constructor() {
8
- this.chunk = null;
9
- this.pullSize = null;
10
- this.paginator = undefined;
11
- this.rawQuery = undefined;
12
- this.chunk = null;
13
- this.pullSize = null;
14
- this.paginator = undefined;
15
- this.rawQuery = undefined;
16
- this.outputKeys = [];
17
- }
18
- async insertMany(data) {
19
- throw new Error('get() method not implemented');
20
- }
21
- async updateById(id, data) {
22
- throw new Error('get() method not implemented');
23
- }
24
- async findMany(query) {
25
- throw new Error('findMany() method not implemented');
26
- }
27
- async findFirst(query) {
28
- const data = await this.findMany({ ...query, limit: 1 });
29
- if (!data[0]) {
30
- return null;
31
- }
32
- return data[0];
33
- }
34
- async requireById(id, q) {
35
- const found = await this.findByIds([id], {
36
- select: q?.select,
37
- include: q?.include,
38
- limit: 1
39
- });
40
- found.map(d => {
41
- if (this.isMongoDB) {
42
- d['id'] = d['id'].toString();
43
- }
44
- (0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(d));
45
- });
46
- if (!found[0]) {
47
- throw new Error(`Object ${id} not found`);
48
- }
49
- return found[0];
50
- }
51
- async requireFirst(query) {
52
- const found = await this.findMany({ ...query, limit: 1 });
53
- found.map(d => {
54
- if (this.isMongoDB) {
55
- d['id'] = d['id'].toString();
56
- }
57
- (0, clearEmpties_1.clearEmpties)(js_utils_1.Objects.deleteNulls(d));
58
- });
59
- if (!found[0]) {
60
- const stringQuery = query ? JSON.stringify(query) : '';
61
- throw new Error(`No objects found matching: ${stringQuery}`);
62
- }
63
- return found[0];
64
- }
65
- async findByIds(ids, q) {
66
- let data = await this.findMany({
67
- where: {
68
- id: {
69
- in: ids
70
- }
71
- },
72
- limit: q?.limit,
73
- select: q?.select,
74
- include: q?.include
75
- });
76
- return data;
77
- }
78
- async findById(id, q) {
79
- const result = await this.findByIds([id], { ...q, limit: 1 });
80
- if (!result[0]) {
81
- return null;
82
- }
83
- return result[0];
84
- }
85
- async collect(query) {
86
- const data = await this.findMany(query);
87
- if (!Array.isArray(data)) {
88
- return new js_utils_1.Collection([data]);
89
- }
90
- return new js_utils_1.Collection(data);
91
- }
92
- async pluck(path, query) {
93
- const data = await this.findMany(query);
94
- const paths = Object.keys(js_utils_1.Objects.flatten(path));
95
- const result = data.map(e => {
96
- const extracted = js_utils_1.Objects.getFromPath(e, String(paths[0]), undefined);
97
- if (typeof extracted.value !== 'undefined') {
98
- return extracted.value;
99
- }
100
- });
101
- return result;
102
- }
103
- setRelatedQuery(r) {
104
- this.relatedQuery = r;
105
- }
106
- async associate(data) {
107
- if (!this.relatedQuery?.entity || !this.relatedQuery.key) {
108
- throw new Error('Associate can only be called as a related model');
109
- }
110
- const parentData = await this.relatedQuery.repository.findMany({
111
- ...this.relatedQuery.query,
112
- select: { id: true }
113
- });
114
- const foreignKeyName = this.relatedQuery['repository']['modelRelations'][this.relatedQuery.key]
115
- .inverseSidePropertyPath;
116
- if (!foreignKeyName) {
117
- throw new Error('The relationship was not properly defined. Please check that your Repository and Model relations have the same keys');
118
- }
119
- const relatedData = parentData.map(r => ({
120
- [foreignKeyName]: r.id,
121
- ...data
122
- }));
123
- const existingIds = (0, clearEmpties_1.clearEmpties)(relatedData.map(r => r.id));
124
- const existingData = existingIds.length
125
- ? await this.findByIds(relatedData.map(r => r.id))
126
- : [];
127
- const updateQueries = [];
128
- const insertQueries = [];
129
- for (const related of relatedData) {
130
- const exists = existingData.find((d) => {
131
- const p = d;
132
- p.id === related.id;
133
- });
134
- if (exists) {
135
- updateQueries.push(this.updateById(exists.id, {
136
- ...exists,
137
- [foreignKeyName]: related[foreignKeyName]
138
- }));
139
- }
140
- else {
141
- insertQueries.push(related);
142
- }
143
- }
144
- const updateResult = await Promise.all(updateQueries);
145
- const insertedResult = await this.insertMany(insertQueries);
146
- return [...updateResult, ...insertedResult];
147
- }
148
- async attach(id, pivot) {
149
- if (!this.relatedQuery?.entity || !this.relatedQuery.key) {
150
- throw new Error('Associate can only be called as a related model');
151
- }
152
- const parentData = await this.relatedQuery.repository.findMany({
153
- ...this.relatedQuery.query,
154
- select: { id: true }
155
- });
156
- const foreignKeyName = this.relatedQuery['repository']['modelRelations'][this.relatedQuery.key]
157
- .joinColumns[0].propertyPath;
158
- const inverseKeyName = this.relatedQuery['repository']['modelRelations'][this.relatedQuery.key]
159
- .inverseJoinColumns[0].propertyPath;
160
- if (!foreignKeyName || !inverseKeyName) {
161
- throw new Error(`The relationship was not properly defined. Please check that your Repository and Model relations have the same keys: Searching for: ${this.relatedQuery.key}`);
162
- }
163
- const relatedData = parentData.map(d => ({
164
- [foreignKeyName]: d.id,
165
- [inverseKeyName]: id,
166
- ...pivot
167
- }));
168
- return this.relatedQuery.pivot.insertMany(relatedData);
169
- }
170
- hasMany(r) {
171
- const newRepo = new r.repository();
172
- const calleeName = new Error('dummy')
173
- .stack.split('\n')[2]
174
- .replace(/^\s+at\s+(.+?)\s.+/g, '$1')
175
- .split('.')[1];
176
- if (this.relatedQuery) {
177
- newRepo.setRelatedQuery({
178
- ...this.relatedQuery,
179
- key: calleeName
180
- });
181
- }
182
- return newRepo;
183
- }
184
- belongsTo(r) {
185
- return this.hasMany(r);
186
- }
187
- hasOne() {
188
- throw new Error('Method not implemented');
189
- }
190
- belongsToMany(r) {
191
- const newRepo = new r.repository();
192
- const relationName = new Error('dummy')
193
- .stack.split('\n')[2]
194
- .replace(/^\s+at\s+(.+?)\s.+/g, '$1')
195
- .split('.')[1];
196
- const pivot = new r.pivot();
197
- pivot.setRelatedQuery({
198
- ...this.relatedQuery,
199
- key: relationName
200
- });
201
- if (this.relatedQuery) {
202
- newRepo.setRelatedQuery({
203
- ...this.relatedQuery,
204
- key: relationName,
205
- pivot
206
- });
207
- }
208
- else {
209
- newRepo.setRelatedQuery({
210
- key: relationName,
211
- pivot
212
- });
213
- }
214
- return newRepo;
215
- }
216
- hasManyThrough() {
217
- throw new Error('Method not implemented');
218
- }
219
- jsApplySelect(select, data) {
220
- const _data = Array.isArray(data) ? [...data] : [data];
221
- if (!select) {
222
- return data;
223
- }
224
- const selectedAttributes = Object.keys(js_utils_1.Objects.flatten(select));
225
- const iterationArray = this.outputKeys.length === 0 && selectedAttributes.length > 0
226
- ? selectedAttributes
227
- : [...this.outputKeys];
228
- const compareArray = this.outputKeys.length === 0 && selectedAttributes.length > 0
229
- ? [...this.outputKeys]
230
- : selectedAttributes;
231
- return _data.map(element => {
232
- const newElement = {};
233
- iterationArray.forEach(attribute => {
234
- if (compareArray.length > 0 && !compareArray.includes(attribute)) {
235
- return undefined;
236
- }
237
- const extract = js_utils_1.Objects.getFromPath(element, attribute, undefined);
238
- let value = js_utils_1.Objects.get(() => extract.value, undefined);
239
- if (typeof value !== 'undefined' && value !== null) {
240
- if (typeof value === 'object' &&
241
- value.hasOwnProperty('data') &&
242
- value.data.hasOwnProperty('name')) {
243
- newElement[extract.label] = value.data.name;
244
- }
245
- else {
246
- if (typeof value === 'object' && js_utils_1.Ids.isValidObjectID(value)) {
247
- value = js_utils_1.Ids.objectIdString(value);
248
- }
249
- newElement[extract.label] = value;
250
- }
251
- }
252
- });
253
- return js_utils_1.Objects.nest(newElement);
254
- });
255
- }
256
- }
257
- exports.BaseConnector = BaseConnector;
package/dist/Fluent.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import { DataSource } from 'typeorm';
2
- import { AnyObject, Primitives } from './types';
3
- import { Collection } from '@goatlab/js-utils';
4
- export declare class Fluent {
5
- static collect<T = AnyObject | Primitives>(data: T[]): Collection<T>;
6
- static initialize(dataSources: DataSource[], Entities: any[]): Promise<void>;
7
- }
package/dist/Fluent.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Fluent = void 0;
4
- const js_utils_1 = require("@goatlab/js-utils");
5
- const generatorDatasource_1 = require("./generatorDatasource");
6
- class Fluent {
7
- static collect(data) {
8
- return new js_utils_1.Collection(data);
9
- }
10
- static async initialize(dataSources, Entities) {
11
- generatorDatasource_1.modelGeneratorDataSource.setOptions({ entities: Entities });
12
- if (!generatorDatasource_1.modelGeneratorDataSource.isInitialized) {
13
- await generatorDatasource_1.modelGeneratorDataSource.initialize();
14
- }
15
- for (const dataSource of dataSources) {
16
- if (!dataSource.isInitialized) {
17
- await dataSource.initialize();
18
- }
19
- }
20
- }
21
- }
22
- exports.Fluent = Fluent;
@@ -1,17 +0,0 @@
1
- import { FindByIdFilter, FluentQuery, QueryOutput } from './types';
2
- export interface FluentConnectorInterface<ModelDTO, InputDTO, OutputDTO> {
3
- insert(data: InputDTO): Promise<OutputDTO>;
4
- insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
5
- findById<T extends FindByIdFilter<ModelDTO>>(id: string, q?: T): Promise<QueryOutput<T, ModelDTO> | null>;
6
- findByIds<T extends FindByIdFilter<ModelDTO>>(ids: string[], q?: T): Promise<QueryOutput<T, ModelDTO>[]>;
7
- findMany<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>[]>;
8
- findFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO> | null>;
9
- requireById(id: string, q?: FindByIdFilter<ModelDTO>): Promise<QueryOutput<FindByIdFilter<ModelDTO>, ModelDTO>>;
10
- requireFirst<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>>;
11
- updateById(id: string, data: InputDTO): Promise<OutputDTO>;
12
- replaceById(id: string, data: InputDTO): Promise<OutputDTO>;
13
- deleteById(id: string): Promise<string>;
14
- loadFirst(query?: FluentQuery<ModelDTO>): any;
15
- loadById(id: string): any;
16
- raw(): any;
17
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- export declare class FluentEntity {
2
- type?: string;
3
- roles?: string[];
4
- created?: Date;
5
- updated?: Date;
6
- deleted?: Date;
7
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FluentEntity = void 0;
4
- const tslib_1 = require("tslib");
5
- const decorators_1 = require("./decorators");
6
- class FluentEntity {
7
- }
8
- tslib_1.__decorate([
9
- decorators_1.f.property({ required: false }),
10
- tslib_1.__metadata("design:type", String)
11
- ], FluentEntity.prototype, "type", void 0);
12
- tslib_1.__decorate([
13
- decorators_1.f.stringArray(String, { required: false }),
14
- tslib_1.__metadata("design:type", Array)
15
- ], FluentEntity.prototype, "roles", void 0);
16
- tslib_1.__decorate([
17
- decorators_1.f.created(),
18
- tslib_1.__metadata("design:type", Date)
19
- ], FluentEntity.prototype, "created", void 0);
20
- tslib_1.__decorate([
21
- decorators_1.f.updated(),
22
- tslib_1.__metadata("design:type", Date)
23
- ], FluentEntity.prototype, "updated", void 0);
24
- tslib_1.__decorate([
25
- decorators_1.f.deleted(),
26
- tslib_1.__metadata("design:type", Date)
27
- ], FluentEntity.prototype, "deleted", void 0);
28
- exports.FluentEntity = FluentEntity;
@@ -1,38 +0,0 @@
1
- import { LoadedResult, QueryOutput } from './../types';
2
- import { Repository, MongoRepository } from 'typeorm';
3
- import { BaseConnector } from '../BaseConnector';
4
- import { FluentConnectorInterface } from '../FluentConnectorInterface';
5
- import type { AnyObject, FluentQuery } from '../types';
6
- import { DataSource } from 'typeorm';
7
- import { z } from 'zod';
8
- export interface TypeOrmConnectorParams<Input, Output> {
9
- entity: any;
10
- dataSource: DataSource;
11
- inputSchema: z.ZodType<Input>;
12
- outputSchema?: z.ZodType<Output>;
13
- }
14
- export declare class TypeOrmConnector<ModelDTO = AnyObject, InputDTO = ModelDTO, OutputDTO = InputDTO> extends BaseConnector<ModelDTO, InputDTO, OutputDTO> implements FluentConnectorInterface<ModelDTO, InputDTO, OutputDTO> {
15
- private readonly repository;
16
- private readonly dataSource;
17
- private readonly inputSchema;
18
- private readonly outputSchema;
19
- private readonly entity;
20
- constructor({ entity, dataSource, inputSchema, outputSchema }: TypeOrmConnectorParams<InputDTO, OutputDTO>);
21
- insert(data: InputDTO): Promise<OutputDTO>;
22
- insertMany(data: InputDTO[]): Promise<OutputDTO[]>;
23
- findMany<T extends FluentQuery<ModelDTO>>(query?: T): Promise<QueryOutput<T, ModelDTO>[]>;
24
- updateById(id: string, data: InputDTO): Promise<OutputDTO>;
25
- replaceById(id: string, data: InputDTO): Promise<OutputDTO>;
26
- deleteById(id: string): Promise<string>;
27
- clear(): Promise<boolean>;
28
- loadFirst(query?: FluentQuery<ModelDTO>): LoadedResult<this>;
29
- loadById(id: string): LoadedResult<this>;
30
- raw(): Repository<ModelDTO>;
31
- mongoRaw(): MongoRepository<ModelDTO>;
32
- protected clone(): any;
33
- private generateTypeOrmQuery;
34
- private customTypeOrmRelatedFind;
35
- private getTypeOrmQueryBuilderSelect;
36
- private getTypeOrmQueryBuilderSubqueries;
37
- private customMongoRelatedFind;
38
- }