@contember/engine-content-api 1.3.0-alpha.1 → 1.3.0-alpha.4

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 (263) hide show
  1. package/dist/src/ExecutionContainer.d.ts +141 -0
  2. package/dist/src/ExecutionContainer.d.ts.map +1 -0
  3. package/dist/src/ExecutionContainer.js +84 -0
  4. package/dist/src/ExecutionContainer.js.map +1 -0
  5. package/dist/src/index.d.ts +2 -1
  6. package/dist/src/index.d.ts.map +1 -1
  7. package/dist/src/index.js +18 -2
  8. package/dist/src/index.js.map +1 -1
  9. package/dist/src/mapper/ColumnValue.d.ts +2 -2
  10. package/dist/src/mapper/ColumnValue.d.ts.map +1 -1
  11. package/dist/src/mapper/EventManager.d.ts +86 -0
  12. package/dist/src/mapper/EventManager.d.ts.map +1 -0
  13. package/dist/src/mapper/EventManager.js +118 -0
  14. package/dist/src/mapper/EventManager.js.map +1 -0
  15. package/dist/src/mapper/JunctionTableManager.d.ts +12 -11
  16. package/dist/src/mapper/JunctionTableManager.d.ts.map +1 -1
  17. package/dist/src/mapper/JunctionTableManager.js +20 -8
  18. package/dist/src/mapper/JunctionTableManager.js.map +1 -1
  19. package/dist/src/mapper/Mapper.d.ts +11 -6
  20. package/dist/src/mapper/Mapper.d.ts.map +1 -1
  21. package/dist/src/mapper/Mapper.js +34 -17
  22. package/dist/src/mapper/Mapper.js.map +1 -1
  23. package/dist/src/mapper/MapperFactory.d.ts +33 -0
  24. package/dist/src/mapper/MapperFactory.d.ts.map +1 -0
  25. package/dist/src/mapper/MapperFactory.js +40 -0
  26. package/dist/src/mapper/MapperFactory.js.map +1 -0
  27. package/dist/src/mapper/Result.d.ts +3 -2
  28. package/dist/src/mapper/Result.d.ts.map +1 -1
  29. package/dist/src/mapper/Result.js +2 -1
  30. package/dist/src/mapper/Result.js.map +1 -1
  31. package/dist/src/mapper/delete/DeleteExecutor.d.ts.map +1 -1
  32. package/dist/src/mapper/delete/DeleteExecutor.js +41 -1
  33. package/dist/src/mapper/delete/DeleteExecutor.js.map +1 -1
  34. package/dist/src/mapper/index.d.ts +3 -1
  35. package/dist/src/mapper/index.d.ts.map +1 -1
  36. package/dist/src/mapper/index.js +3 -1
  37. package/dist/src/mapper/index.js.map +1 -1
  38. package/dist/src/mapper/insert/InsertBuilder.d.ts +2 -2
  39. package/dist/src/mapper/insert/InsertBuilder.d.ts.map +1 -1
  40. package/dist/src/mapper/insert/InsertBuilder.js +8 -2
  41. package/dist/src/mapper/insert/InsertBuilder.js.map +1 -1
  42. package/dist/src/mapper/insert/Inserter.js +3 -3
  43. package/dist/src/mapper/insert/Inserter.js.map +1 -1
  44. package/dist/src/mapper/select/OrderByHelper.d.ts +1 -1
  45. package/dist/src/mapper/select/OrderByHelper.d.ts.map +1 -1
  46. package/dist/src/mapper/select/OrderByHelper.js +3 -1
  47. package/dist/src/mapper/select/OrderByHelper.js.map +1 -1
  48. package/dist/src/mapper/select/RelationFetcher.js +2 -2
  49. package/dist/src/mapper/select/RelationFetcher.js.map +1 -1
  50. package/dist/src/mapper/update/UpdateBuilder.d.ts +4 -4
  51. package/dist/src/mapper/update/UpdateBuilder.d.ts.map +1 -1
  52. package/dist/src/mapper/update/UpdateBuilder.js +26 -8
  53. package/dist/src/mapper/update/UpdateBuilder.js.map +1 -1
  54. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts +1 -1
  55. package/dist/src/mapper/update/UpdateBuilderFactory.d.ts.map +1 -1
  56. package/dist/src/mapper/update/UpdateBuilderFactory.js +2 -2
  57. package/dist/src/mapper/update/UpdateBuilderFactory.js.map +1 -1
  58. package/dist/src/mapper/update/Updater.d.ts.map +1 -1
  59. package/dist/src/mapper/update/Updater.js +6 -10
  60. package/dist/src/mapper/update/Updater.js.map +1 -1
  61. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts +1 -3
  62. package/dist/src/resolvers/GraphQlQueryAstFactory.d.ts.map +1 -1
  63. package/dist/src/resolvers/GraphQlQueryAstFactory.js +1 -4
  64. package/dist/src/resolvers/GraphQlQueryAstFactory.js.map +1 -1
  65. package/dist/src/resolvers/MutationResolver.d.ts +1 -4
  66. package/dist/src/resolvers/MutationResolver.d.ts.map +1 -1
  67. package/dist/src/resolvers/MutationResolver.js +9 -11
  68. package/dist/src/resolvers/MutationResolver.js.map +1 -1
  69. package/dist/src/resolvers/ReadResolver.d.ts +1 -3
  70. package/dist/src/resolvers/ReadResolver.d.ts.map +1 -1
  71. package/dist/src/resolvers/ReadResolver.js +6 -10
  72. package/dist/src/resolvers/ReadResolver.js.map +1 -1
  73. package/dist/src/resolvers/ValidationResolver.d.ts +1 -3
  74. package/dist/src/resolvers/ValidationResolver.d.ts.map +1 -1
  75. package/dist/src/resolvers/ValidationResolver.js +3 -4
  76. package/dist/src/resolvers/ValidationResolver.js.map +1 -1
  77. package/dist/src/resolvers/index.d.ts +0 -1
  78. package/dist/src/resolvers/index.d.ts.map +1 -1
  79. package/dist/src/resolvers/index.js +0 -1
  80. package/dist/src/resolvers/index.js.map +1 -1
  81. package/dist/src/schema/CustomTypesProvider.d.ts.map +1 -1
  82. package/dist/src/schema/CustomTypesProvider.js +1 -23
  83. package/dist/src/schema/CustomTypesProvider.js.map +1 -1
  84. package/dist/src/schema/MutationProvider.js +4 -4
  85. package/dist/src/schema/MutationProvider.js.map +1 -1
  86. package/dist/src/schema/QueryProvider.js +3 -3
  87. package/dist/src/schema/QueryProvider.js.map +1 -1
  88. package/dist/src/tsconfig.tsbuildinfo +1 -1
  89. package/dist/src/types.d.ts +2 -3
  90. package/dist/src/types.d.ts.map +1 -1
  91. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js +3 -5
  92. package/dist/tests/cases/bugs/bug-update-by-nested-unique.test.js.map +1 -1
  93. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js +2 -2
  94. package/dist/tests/cases/integration/graphQlDb/insert/insertSequence.test.js.map +1 -1
  95. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js +1 -1
  96. package/dist/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.js.map +1 -1
  97. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js +45 -45
  98. package/dist/tests/cases/integration/graphQlDb/update/deferedConstraints.test.js.map +1 -1
  99. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js +5 -5
  100. package/dist/tests/cases/integration/graphQlDb/update/failedDelete.test.js.map +1 -1
  101. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js +2 -2
  102. package/dist/tests/cases/integration/graphQlDb/update/invalidInput.test.js.map +1 -1
  103. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js +7 -7
  104. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.js.map +1 -1
  105. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js +7 -7
  106. package/dist/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.js.map +1 -1
  107. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js +2 -2
  108. package/dist/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.js.map +1 -1
  109. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js +3 -3
  110. package/dist/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.js.map +1 -1
  111. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts +2 -0
  112. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.d.ts.map +1 -0
  113. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js +67 -0
  114. package/dist/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.js.map +1 -0
  115. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js +6 -18
  116. package/dist/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.js.map +1 -1
  117. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js +3 -4
  118. package/dist/tests/cases/integration/graphQlRequests/update/additionalFilter.test.js.map +1 -1
  119. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js +3 -8
  120. package/dist/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.js.map +1 -1
  121. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js +3 -9
  122. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.js.map +1 -1
  123. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js +3 -9
  124. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.js.map +1 -1
  125. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js +3 -9
  126. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.js.map +1 -1
  127. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js +3 -9
  128. package/dist/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.js.map +1 -1
  129. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js +3 -10
  130. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.js.map +1 -1
  131. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js +3 -10
  132. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.js.map +1 -1
  133. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js +3 -9
  134. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.js.map +1 -1
  135. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js +3 -9
  136. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.js.map +1 -1
  137. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js +6 -18
  138. package/dist/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.js.map +1 -1
  139. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js +3 -11
  140. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.js.map +1 -1
  141. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js +3 -8
  142. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.js.map +1 -1
  143. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js +3 -6
  144. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.js.map +1 -1
  145. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js +3 -6
  146. package/dist/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.js.map +1 -1
  147. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js +15 -50
  148. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.js.map +1 -1
  149. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js +3 -10
  150. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.js.map +1 -1
  151. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js +3 -10
  152. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.js.map +1 -1
  153. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js +3 -6
  154. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.js.map +1 -1
  155. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js +3 -7
  156. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.js.map +1 -1
  157. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js +12 -32
  158. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.js.map +1 -1
  159. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js +3 -3
  160. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.js.map +1 -1
  161. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js +6 -20
  162. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.js.map +1 -1
  163. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js +3 -10
  164. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.js.map +1 -1
  165. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js +3 -9
  166. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.js.map +1 -1
  167. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js +6 -19
  168. package/dist/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.js.map +1 -1
  169. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js +6 -8
  170. package/dist/tests/cases/integration/graphQlRequests/update/queryPortal.test.js.map +1 -1
  171. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js +9 -24
  172. package/dist/tests/cases/integration/graphQlRequests/update/transaction.test.js.map +1 -1
  173. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js +3 -7
  174. package/dist/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.js.map +1 -1
  175. package/dist/tests/cases/unit/orderbyHelper.test.js +11 -0
  176. package/dist/tests/cases/unit/orderbyHelper.test.js.map +1 -1
  177. package/dist/tests/src/test.d.ts +1 -0
  178. package/dist/tests/src/test.d.ts.map +1 -1
  179. package/dist/tests/src/test.js +34 -6
  180. package/dist/tests/src/test.js.map +1 -1
  181. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  182. package/package.json +11 -11
  183. package/src/ExecutionContainer.ts +204 -0
  184. package/src/index.ts +24 -1
  185. package/src/mapper/ColumnValue.ts +2 -2
  186. package/src/mapper/EventManager.ts +158 -0
  187. package/src/mapper/JunctionTableManager.ts +50 -32
  188. package/src/mapper/Mapper.ts +39 -21
  189. package/src/mapper/MapperFactory.ts +67 -0
  190. package/src/mapper/Result.ts +2 -1
  191. package/src/mapper/delete/DeleteExecutor.ts +42 -1
  192. package/src/mapper/index.ts +3 -1
  193. package/src/mapper/insert/InsertBuilder.ts +12 -2
  194. package/src/mapper/insert/Inserter.ts +3 -3
  195. package/src/mapper/select/OrderByHelper.ts +2 -1
  196. package/src/mapper/select/RelationFetcher.ts +2 -2
  197. package/src/mapper/update/UpdateBuilder.ts +30 -7
  198. package/src/mapper/update/UpdateBuilderFactory.ts +2 -2
  199. package/src/mapper/update/Updater.ts +6 -11
  200. package/src/resolvers/GraphQlQueryAstFactory.ts +1 -2
  201. package/src/resolvers/MutationResolver.ts +12 -13
  202. package/src/resolvers/ReadResolver.ts +5 -9
  203. package/src/resolvers/ValidationResolver.ts +2 -4
  204. package/src/resolvers/index.ts +0 -1
  205. package/src/schema/CustomTypesProvider.ts +2 -27
  206. package/src/schema/MutationProvider.ts +4 -4
  207. package/src/schema/QueryProvider.ts +3 -3
  208. package/src/tsconfig.json +7 -21
  209. package/src/types.ts +2 -3
  210. package/tests/cases/bugs/bug-update-by-nested-unique.test.ts +3 -5
  211. package/tests/cases/integration/graphQlDb/insert/insertSequence.test.ts +2 -2
  212. package/tests/cases/integration/graphQlDb/update/bug-freeze-connect-missing-one.test.ts +1 -1
  213. package/tests/cases/integration/graphQlDb/update/deferedConstraints.test.ts +9 -9
  214. package/tests/cases/integration/graphQlDb/update/failedDelete.test.ts +3 -3
  215. package/tests/cases/integration/graphQlDb/update/invalidInput.test.ts +2 -2
  216. package/tests/cases/integration/graphQlDb/update/nullChecksNotNull.test.ts +7 -7
  217. package/tests/cases/integration/graphQlDb/update/nullChecksNullable.test.ts +7 -7
  218. package/tests/cases/integration/graphQlDb/update/uniqueConstraint.test.ts +2 -2
  219. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/connect.test.ts +3 -3
  220. package/tests/cases/integration/graphQlRequests/query/sorting/orderBy.test.ts +67 -0
  221. package/tests/cases/integration/graphQlRequests/update/acl/aclUpdate.test.ts +6 -18
  222. package/tests/cases/integration/graphQlRequests/update/additionalFilter.test.ts +3 -4
  223. package/tests/cases/integration/graphQlRequests/update/basic/columnUpdate.test.ts +3 -8
  224. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/update.test.ts +3 -9
  225. package/tests/cases/integration/graphQlRequests/update/manyHasManyInverse/upsert.test.ts +3 -9
  226. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/update.test.ts +3 -9
  227. package/tests/cases/integration/graphQlRequests/update/manyHasManyOwning/upsert.test.ts +3 -9
  228. package/tests/cases/integration/graphQlRequests/update/manyHasOne/connect.test.ts +3 -10
  229. package/tests/cases/integration/graphQlRequests/update/manyHasOne/create.test.ts +3 -10
  230. package/tests/cases/integration/graphQlRequests/update/manyHasOne/disconnect.test.ts +3 -9
  231. package/tests/cases/integration/graphQlRequests/update/manyHasOne/update.test.ts +3 -9
  232. package/tests/cases/integration/graphQlRequests/update/manyHasOne/upsert.test.ts +6 -18
  233. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connect.test.ts +3 -11
  234. package/tests/cases/integration/graphQlRequests/update/oneHasMany/disconnect.test.ts +3 -8
  235. package/tests/cases/integration/graphQlRequests/update/oneHasMany/update.test.ts +3 -6
  236. package/tests/cases/integration/graphQlRequests/update/oneHasMany/upsert.test.ts +3 -6
  237. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/connect.test.ts +15 -50
  238. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/create.test.ts +3 -10
  239. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/disconnect.test.ts +3 -10
  240. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/update.test.ts +3 -6
  241. package/tests/cases/integration/graphQlRequests/update/oneHasOneInverse/upsert.test.ts +3 -7
  242. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connect.test.ts +12 -32
  243. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/connectOrCreate.test.ts +3 -3
  244. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/create.test.ts +6 -20
  245. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/disconnect.test.ts +3 -10
  246. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/update.test.ts +3 -9
  247. package/tests/cases/integration/graphQlRequests/update/oneHasOneOwning/upsert.test.ts +6 -19
  248. package/tests/cases/integration/graphQlRequests/update/queryPortal.test.ts +6 -8
  249. package/tests/cases/integration/graphQlRequests/update/transaction.test.ts +9 -24
  250. package/tests/cases/integration/graphQlRequests/upsert/basicUpsert.test.ts +3 -7
  251. package/tests/cases/unit/orderbyHelper.test.ts +13 -0
  252. package/tests/src/test.ts +38 -15
  253. package/tests/tsconfig.json +3 -9
  254. package/dist/src/mapper/MapperContainer.d.ts +0 -18
  255. package/dist/src/mapper/MapperContainer.d.ts.map +0 -1
  256. package/dist/src/mapper/MapperContainer.js +0 -55
  257. package/dist/src/mapper/MapperContainer.js.map +0 -1
  258. package/dist/src/resolvers/ExecutionContainerFactory.d.ts +0 -24
  259. package/dist/src/resolvers/ExecutionContainerFactory.d.ts.map +0 -1
  260. package/dist/src/resolvers/ExecutionContainerFactory.js +0 -45
  261. package/dist/src/resolvers/ExecutionContainerFactory.js.map +0 -1
  262. package/src/mapper/MapperContainer.ts +0 -142
  263. package/src/resolvers/ExecutionContainerFactory.ts +0 -74
@@ -1,142 +0,0 @@
1
- import { PredicateFactory, PredicatesInjector, VariableInjector } from '../acl'
2
- import {
3
- ConditionBuilder,
4
- FieldsVisitorFactory,
5
- JoinBuilder,
6
- MetaHandler,
7
- OrderByBuilder,
8
- RelationFetcher,
9
- WhereBuilder,
10
- } from './select'
11
- import { UniqueWhereExpander } from '../inputProcessing'
12
- import { HasManyToHasOneReducer, HasManyToHasOneReducerExecutionHandler } from '../extensions'
13
- import {
14
- DeleteExecutor,
15
- InsertBuilderFactory,
16
- Inserter,
17
- JunctionConnectHandler,
18
- JunctionDisconnectHandler,
19
- JunctionTableManager,
20
- Mapper,
21
- MapperFactory,
22
- PathFactory,
23
- SelectBuilder,
24
- SelectBuilderFactory,
25
- SelectHydrator,
26
- UpdateBuilderFactory,
27
- Updater,
28
- } from '../mapper'
29
- import { Builder } from '@contember/dic'
30
- import { Acl, Model, Schema } from '@contember/schema'
31
- import { Client, SelectBuilder as DbSelectBuilder } from '@contember/database'
32
- import { Providers } from '@contember/schema-utils'
33
- import { PaginatedHasManyExecutionHandler } from '../extensions/paginatedHasMany/PaginatedHasManyExecutionHandler'
34
- import { PaginatedHasManyFieldProvider } from '../extensions/paginatedHasMany/PaginatedHasManyFieldProvider'
35
- import { WhereOptimizer } from './select/optimizer/WhereOptimizer'
36
- import { ConditionOptimizer } from './select/optimizer/ConditionOptimizer'
37
-
38
- type MapperContainerArgs = {
39
- schema: Schema
40
- identityVariables: Acl.VariablesMap
41
- permissions: Acl.Permissions
42
- providers: Providers
43
- }
44
-
45
- export interface MapperContainer {
46
- mapperFactory: MapperFactory
47
- }
48
-
49
- export const createMapperContainer = ({ permissions, schema, identityVariables, providers }: MapperContainerArgs) => {
50
- const builder = new Builder({})
51
- .addService('providers', () =>
52
- providers)
53
- .addService('variableInjector', () =>
54
- new VariableInjector(schema.model, identityVariables))
55
- .addService('predicateFactory', ({ variableInjector }) =>
56
- new PredicateFactory(permissions, schema.model, variableInjector))
57
- .addService('predicatesInjector', ({ predicateFactory }) =>
58
- new PredicatesInjector(schema.model, predicateFactory))
59
- .addService('joinBuilder', () =>
60
- new JoinBuilder(schema.model))
61
- .addService('conditionBuilder', () =>
62
- new ConditionBuilder())
63
- .addService('pathFactory', () =>
64
- new PathFactory())
65
- .addService('whereOptimized', () =>
66
- new WhereOptimizer(schema.model, new ConditionOptimizer()))
67
- .addService('whereBuilder', ({ joinBuilder, conditionBuilder, pathFactory, whereOptimized }) =>
68
- new WhereBuilder(schema.model, joinBuilder, conditionBuilder, pathFactory, whereOptimized, schema.settings.useExistsInHasManyFilter === true))
69
- .addService('orderByBuilder', ({ joinBuilder }) =>
70
- new OrderByBuilder(schema.model, joinBuilder))
71
- .addService('relationFetcher', ({ whereBuilder, orderByBuilder, predicatesInjector, pathFactory }) =>
72
- new RelationFetcher(whereBuilder, orderByBuilder, predicatesInjector, pathFactory))
73
- .addService('fieldsVisitorFactory', ({ relationFetcher, predicateFactory, whereBuilder }) =>
74
- new FieldsVisitorFactory(schema.model, relationFetcher, predicateFactory, whereBuilder))
75
- .addService('metaHandler', ({ whereBuilder, predicateFactory }) =>
76
- new MetaHandler(whereBuilder, predicateFactory))
77
- .addService('uniqueWhereExpander', () =>
78
- new UniqueWhereExpander(schema.model))
79
- .addService('hasManyToHasOneReducer', ({ uniqueWhereExpander }) =>
80
- new HasManyToHasOneReducerExecutionHandler(schema.model, uniqueWhereExpander))
81
- .addService('paginatedHasManyExecutionHandler', ({ relationFetcher }) =>
82
- new PaginatedHasManyExecutionHandler(schema.model, relationFetcher))
83
- .addService('selectHandlers', ({ hasManyToHasOneReducer, paginatedHasManyExecutionHandler }) => ({
84
- [HasManyToHasOneReducer.extensionName]: hasManyToHasOneReducer,
85
- [PaginatedHasManyFieldProvider.extensionName]: paginatedHasManyExecutionHandler,
86
- }))
87
- .addService('selectBuilderFactory', ({ whereBuilder, orderByBuilder, fieldsVisitorFactory, metaHandler, selectHandlers, pathFactory, predicateFactory }) =>
88
- new (class implements SelectBuilderFactory {
89
- create(qb: DbSelectBuilder, hydrator: SelectHydrator, relationPath: Model.AnyRelationContext[]): SelectBuilder {
90
- return new SelectBuilder(
91
- schema.model,
92
- whereBuilder,
93
- orderByBuilder,
94
- metaHandler,
95
- qb,
96
- hydrator,
97
- fieldsVisitorFactory,
98
- selectHandlers,
99
- pathFactory,
100
- relationPath,
101
- predicateFactory,
102
- )
103
- }
104
- })())
105
- .addService(
106
- 'insertBuilderFactory',
107
- ({ whereBuilder, pathFactory, predicateFactory }) =>
108
- new InsertBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory),
109
- )
110
- .addService(
111
- 'updateBuilderFactory',
112
- ({ whereBuilder, pathFactory, predicateFactory }) =>
113
- new UpdateBuilderFactory(schema.model, whereBuilder, pathFactory, predicateFactory))
114
- .addService('connectJunctionHandler', () =>
115
- new JunctionConnectHandler())
116
- .addService('disconnectJunctionHandler', ({}) =>
117
- new JunctionDisconnectHandler())
118
- .addService('junctionTableManager', ({ predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory }) =>
119
- new JunctionTableManager(schema.model, predicateFactory, whereBuilder, connectJunctionHandler, disconnectJunctionHandler, pathFactory))
120
- .addService('deleteExecutor', ({ predicateFactory, updateBuilderFactory, whereBuilder, pathFactory }) =>
121
- new DeleteExecutor(schema.model, predicateFactory, whereBuilder, updateBuilderFactory, pathFactory))
122
- .addService('updater', ({ predicateFactory, updateBuilderFactory }) =>
123
- new Updater(schema.model, predicateFactory, updateBuilderFactory))
124
- .addService('inserter', ({ insertBuilderFactory, providers }) => new Inserter(schema.model, insertBuilderFactory, providers))
125
- .addService('mapperFactory', ({ predicatesInjector, selectBuilderFactory, uniqueWhereExpander, whereBuilder, junctionTableManager, deleteExecutor, updater, inserter, pathFactory }) => {
126
- return (db: Client) =>
127
- new Mapper(
128
- schema.model,
129
- db,
130
- predicatesInjector,
131
- selectBuilderFactory,
132
- uniqueWhereExpander,
133
- whereBuilder,
134
- junctionTableManager,
135
- deleteExecutor,
136
- updater,
137
- inserter,
138
- pathFactory,
139
- )
140
- })
141
- return builder.build().pick('mapperFactory')
142
- }
@@ -1,74 +0,0 @@
1
- import { Builder, Container } from '@contember/dic'
2
- import { Acl, Schema } from '@contember/schema'
3
- import { Context } from '../types'
4
- import { ReadResolver } from './ReadResolver'
5
- import { MutationResolver } from './MutationResolver'
6
- import { Client } from '@contember/database'
7
- import {
8
- ColumnValueResolver,
9
- DependencyCollector,
10
- EntityRulesResolver,
11
- InputPreValidator,
12
- QueryAstFactory,
13
- ValidationDataSelector,
14
- } from '../input-validation'
15
- import { ValidationResolver } from './ValidationResolver'
16
- import { Providers } from '@contember/schema-utils'
17
- import { GraphQlQueryAstFactory } from './GraphQlQueryAstFactory'
18
- import { getArgumentValues } from 'graphql'
19
- import { createMapperContainer } from '../mapper'
20
-
21
- export interface ExecutionContainer {
22
- readResolver: ReadResolver
23
- mutationResolver: MutationResolver
24
- validationResolver: ValidationResolver
25
- }
26
-
27
- export class ExecutionContainerFactory {
28
- constructor(
29
- private readonly schema: Schema,
30
- private readonly permissions: Acl.Permissions,
31
- private readonly providers: Providers,
32
- private readonly argumentValuesResolver: typeof getArgumentValues,
33
- private readonly setupSystemVariables: (db: Client) => Promise<void>,
34
- ) {}
35
-
36
- public create(context: Pick<Context, 'db' | 'identityVariables'>): Container<ExecutionContainer> {
37
- const mapperContainer = createMapperContainer({
38
- permissions: this.permissions,
39
- identityVariables: context.identityVariables,
40
- providers: this.providers,
41
- schema: this.schema,
42
- })
43
- const innerDic = new Builder({})
44
- .addService('db', () =>
45
- context.db)
46
- .addService('providers', () =>
47
- this.providers)
48
- .addService('mapperFactory', () =>
49
- mapperContainer.mapperFactory)
50
- .addService('queryAstFactory', () =>
51
- new GraphQlQueryAstFactory(this.argumentValuesResolver))
52
- .addService('readResolver', ({ db, mapperFactory, queryAstFactory }) =>
53
- new ReadResolver(db, mapperFactory, queryAstFactory))
54
- .addService('validationDependencyCollector', () =>
55
- new DependencyCollector())
56
- .addService('validationQueryAstFactory', () =>
57
- new QueryAstFactory(this.schema.model))
58
- .addService('dataSelector', ({ validationQueryAstFactory }) =>
59
- new ValidationDataSelector(this.schema.model, validationQueryAstFactory))
60
- .addService('columnValueResolver', ({ providers }) =>
61
- new ColumnValueResolver(providers))
62
- .addService('entityRulesResolver', () =>
63
- new EntityRulesResolver(this.schema.validation, this.schema.model))
64
- .addService('inputPreValidator', ({ entityRulesResolver, columnValueResolver, dataSelector }) =>
65
- new InputPreValidator(this.schema.model, entityRulesResolver, columnValueResolver, dataSelector))
66
- .addService('mutationResolver', ({ db, mapperFactory, inputPreValidator, queryAstFactory }) =>
67
- new MutationResolver(this.schema.model, db, mapperFactory, this.setupSystemVariables, inputPreValidator, queryAstFactory))
68
- .addService('validationResolver', ({ inputPreValidator, db, mapperFactory }) =>
69
- new ValidationResolver(db, mapperFactory, inputPreValidator))
70
- .build()
71
-
72
- return innerDic.pick('readResolver', 'mutationResolver', 'validationResolver')
73
- }
74
- }