@contember/engine-content-api 2.0.0-alpha.19 → 2.0.0-alpha.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 (330) hide show
  1. package/dist/development/index.cjs +1 -1
  2. package/dist/development/index.js +1 -1
  3. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  4. package/dist/development/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  5. package/dist/development/src/input-validation/preValidation/InputPreValidator.js +1 -1
  6. package/dist/development/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  7. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs +10 -10
  8. package/dist/development/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  9. package/dist/development/src/inputProcessing/CreateInputVisitor.js +10 -10
  10. package/dist/development/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  11. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
  12. package/dist/development/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  13. package/dist/development/src/inputProcessing/UpdateInputVisitor.js +13 -13
  14. package/dist/development/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  15. package/dist/development/src/mapper/MutationProcessorHelper.cjs +10 -2
  16. package/dist/development/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  17. package/dist/development/src/mapper/MutationProcessorHelper.js +10 -2
  18. package/dist/development/src/mapper/MutationProcessorHelper.js.map +1 -1
  19. package/dist/development/src/mapper/Result.cjs +10 -27
  20. package/dist/development/src/mapper/Result.cjs.map +1 -1
  21. package/dist/development/src/mapper/Result.js +10 -27
  22. package/dist/development/src/mapper/Result.js.map +1 -1
  23. package/dist/development/src/mapper/insert/InsertBuilder.cjs +1 -13
  24. package/dist/development/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  25. package/dist/development/src/mapper/insert/InsertBuilder.js +1 -13
  26. package/dist/development/src/mapper/insert/InsertBuilder.js.map +1 -1
  27. package/dist/development/src/mapper/insert/Inserter.cjs +43 -21
  28. package/dist/development/src/mapper/insert/Inserter.cjs.map +1 -1
  29. package/dist/development/src/mapper/insert/Inserter.js +45 -23
  30. package/dist/development/src/mapper/insert/Inserter.js.map +1 -1
  31. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
  32. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  33. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
  34. package/dist/development/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  35. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
  36. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  37. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
  38. package/dist/development/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  39. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
  40. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  41. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
  42. package/dist/development/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  43. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
  44. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  45. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
  46. package/dist/development/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  47. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
  48. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  49. package/dist/development/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
  50. package/dist/development/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  51. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
  52. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  53. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
  54. package/dist/development/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  55. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  56. package/dist/development/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  57. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  58. package/dist/development/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  59. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  60. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  61. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  62. package/dist/development/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  63. package/dist/development/src/mapper/update/UpdateBuilder.cjs +2 -14
  64. package/dist/development/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  65. package/dist/development/src/mapper/update/UpdateBuilder.js +2 -14
  66. package/dist/development/src/mapper/update/UpdateBuilder.js.map +1 -1
  67. package/dist/development/src/mapper/update/Updater.cjs +45 -17
  68. package/dist/development/src/mapper/update/Updater.cjs.map +1 -1
  69. package/dist/development/src/mapper/update/Updater.js +47 -19
  70. package/dist/development/src/mapper/update/Updater.js.map +1 -1
  71. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
  72. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  73. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
  74. package/dist/development/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  75. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
  76. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  77. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
  78. package/dist/development/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  79. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
  80. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  81. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
  82. package/dist/development/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  83. package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
  84. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  85. package/dist/development/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
  86. package/dist/development/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  87. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
  88. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  89. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
  90. package/dist/development/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  91. package/dist/development/src/resolvers/MutationResolver.cjs +1 -1
  92. package/dist/development/src/resolvers/MutationResolver.js +1 -1
  93. package/dist/production/index.cjs +1 -1
  94. package/dist/production/index.js +1 -1
  95. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs +1 -1
  96. package/dist/production/src/input-validation/preValidation/InputPreValidator.cjs.map +1 -1
  97. package/dist/production/src/input-validation/preValidation/InputPreValidator.js +1 -1
  98. package/dist/production/src/input-validation/preValidation/InputPreValidator.js.map +1 -1
  99. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs +10 -10
  100. package/dist/production/src/inputProcessing/CreateInputVisitor.cjs.map +1 -1
  101. package/dist/production/src/inputProcessing/CreateInputVisitor.js +10 -10
  102. package/dist/production/src/inputProcessing/CreateInputVisitor.js.map +1 -1
  103. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs +13 -13
  104. package/dist/production/src/inputProcessing/UpdateInputVisitor.cjs.map +1 -1
  105. package/dist/production/src/inputProcessing/UpdateInputVisitor.js +13 -13
  106. package/dist/production/src/inputProcessing/UpdateInputVisitor.js.map +1 -1
  107. package/dist/production/src/mapper/MutationProcessorHelper.cjs +10 -2
  108. package/dist/production/src/mapper/MutationProcessorHelper.cjs.map +1 -1
  109. package/dist/production/src/mapper/MutationProcessorHelper.js +10 -2
  110. package/dist/production/src/mapper/MutationProcessorHelper.js.map +1 -1
  111. package/dist/production/src/mapper/Result.cjs +10 -27
  112. package/dist/production/src/mapper/Result.cjs.map +1 -1
  113. package/dist/production/src/mapper/Result.js +10 -27
  114. package/dist/production/src/mapper/Result.js.map +1 -1
  115. package/dist/production/src/mapper/insert/InsertBuilder.cjs +1 -13
  116. package/dist/production/src/mapper/insert/InsertBuilder.cjs.map +1 -1
  117. package/dist/production/src/mapper/insert/InsertBuilder.js +1 -13
  118. package/dist/production/src/mapper/insert/InsertBuilder.js.map +1 -1
  119. package/dist/production/src/mapper/insert/Inserter.cjs +43 -21
  120. package/dist/production/src/mapper/insert/Inserter.cjs.map +1 -1
  121. package/dist/production/src/mapper/insert/Inserter.js +45 -23
  122. package/dist/production/src/mapper/insert/Inserter.js.map +1 -1
  123. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs +22 -76
  124. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.cjs.map +1 -1
  125. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js +22 -76
  126. package/dist/production/src/mapper/insert/SqlCreateInputProcessor.js.map +1 -1
  127. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs +45 -0
  128. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.cjs.map +1 -0
  129. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js +45 -0
  130. package/dist/production/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.js.map +1 -0
  131. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs +42 -0
  132. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.cjs.map +1 -0
  133. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js +42 -0
  134. package/dist/production/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.js.map +1 -0
  135. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs +37 -0
  136. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.cjs.map +1 -0
  137. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js +37 -0
  138. package/dist/production/src/mapper/insert/relations/OneHasManyCreateInputProcessor.js.map +1 -0
  139. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.cjs +25 -32
  140. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.cjs.map +1 -0
  141. package/dist/production/src/mapper/{relations → insert/relations}/OneHasOneInverseCreateInputProcessor.js +25 -32
  142. package/dist/production/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.js.map +1 -0
  143. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs +67 -0
  144. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.cjs.map +1 -0
  145. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js +67 -0
  146. package/dist/production/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.js.map +1 -0
  147. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs +3 -0
  148. package/dist/production/src/mapper/select/handlers/FieldsVisitor.cjs.map +1 -1
  149. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js +3 -0
  150. package/dist/production/src/mapper/select/handlers/FieldsVisitor.js.map +1 -1
  151. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs +36 -36
  152. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.cjs.map +1 -1
  153. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js +36 -36
  154. package/dist/production/src/mapper/update/SqlUpdateInputProcessor.js.map +1 -1
  155. package/dist/production/src/mapper/update/UpdateBuilder.cjs +2 -14
  156. package/dist/production/src/mapper/update/UpdateBuilder.cjs.map +1 -1
  157. package/dist/production/src/mapper/update/UpdateBuilder.js +2 -14
  158. package/dist/production/src/mapper/update/UpdateBuilder.js.map +1 -1
  159. package/dist/production/src/mapper/update/Updater.cjs +45 -17
  160. package/dist/production/src/mapper/update/Updater.cjs.map +1 -1
  161. package/dist/production/src/mapper/update/Updater.js +47 -19
  162. package/dist/production/src/mapper/update/Updater.js.map +1 -1
  163. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs +89 -0
  164. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.cjs.map +1 -0
  165. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js +89 -0
  166. package/dist/production/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.js.map +1 -0
  167. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs +89 -0
  168. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.cjs.map +1 -0
  169. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js +89 -0
  170. package/dist/production/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.js.map +1 -0
  171. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs +86 -0
  172. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.cjs.map +1 -0
  173. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js +86 -0
  174. package/dist/production/src/mapper/update/relations/OneHasManyUpdateInputProcessor.js.map +1 -0
  175. package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.cjs +83 -66
  176. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +1 -0
  177. package/dist/production/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.js +83 -66
  178. package/dist/production/src/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.js.map +1 -0
  179. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs +187 -0
  180. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +1 -0
  181. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js +187 -0
  182. package/dist/production/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.js.map +1 -0
  183. package/dist/production/src/resolvers/MutationResolver.cjs +1 -1
  184. package/dist/production/src/resolvers/MutationResolver.js +1 -1
  185. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  186. package/dist/types/input-validation/preValidation/InputPreValidator.d.ts.map +1 -1
  187. package/dist/types/inputProcessing/CreateInputVisitor.d.ts +8 -8
  188. package/dist/types/inputProcessing/CreateInputVisitor.d.ts.map +1 -1
  189. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts +8 -8
  190. package/dist/types/inputProcessing/UpdateInputVisitor.d.ts.map +1 -1
  191. package/dist/types/mapper/MutationProcessorHelper.d.ts +2 -2
  192. package/dist/types/mapper/MutationProcessorHelper.d.ts.map +1 -1
  193. package/dist/types/mapper/Result.d.ts +11 -5
  194. package/dist/types/mapper/Result.d.ts.map +1 -1
  195. package/dist/types/mapper/insert/InsertBuilder.d.ts +3 -7
  196. package/dist/types/mapper/insert/InsertBuilder.d.ts.map +1 -1
  197. package/dist/types/mapper/insert/Inserter.d.ts +0 -1
  198. package/dist/types/mapper/insert/Inserter.d.ts.map +1 -1
  199. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts +11 -8
  200. package/dist/types/mapper/insert/SqlCreateInputProcessor.d.ts.map +1 -1
  201. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts +24 -0
  202. package/dist/types/mapper/insert/relations/ManyHasManyCreateInputProcessor.d.ts.map +1 -0
  203. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts +23 -0
  204. package/dist/types/mapper/insert/relations/ManyHasOneCreateInputProcessor.d.ts.map +1 -0
  205. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts +26 -0
  206. package/dist/types/mapper/insert/relations/OneHasManyCreateInputProcessor.d.ts.map +1 -0
  207. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts +29 -0
  208. package/dist/types/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +1 -0
  209. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts +24 -0
  210. package/dist/types/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +1 -0
  211. package/dist/types/mapper/select/handlers/FieldsVisitor.d.ts.map +1 -1
  212. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts +10 -7
  213. package/dist/types/mapper/update/SqlUpdateInputProcessor.d.ts.map +1 -1
  214. package/dist/types/mapper/update/UpdateBuilder.d.ts +2 -6
  215. package/dist/types/mapper/update/UpdateBuilder.d.ts.map +1 -1
  216. package/dist/types/mapper/update/Updater.d.ts +0 -1
  217. package/dist/types/mapper/update/Updater.d.ts.map +1 -1
  218. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts +46 -0
  219. package/dist/types/mapper/update/relations/ManyHasManyUpdateInputProcessor.d.ts.map +1 -0
  220. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts +40 -0
  221. package/dist/types/mapper/update/relations/ManyHasOneUpdateInputProcessor.d.ts.map +1 -0
  222. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts +46 -0
  223. package/dist/types/mapper/update/relations/OneHasManyUpdateInputProcessor.d.ts.map +1 -0
  224. package/dist/types/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.d.ts +17 -13
  225. package/dist/types/mapper/update/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +1 -0
  226. package/dist/types/mapper/{relations → update/relations}/OneHasOneOwningUpdateInputProcessor.d.ts +19 -16
  227. package/dist/types/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +1 -0
  228. package/dist/types/tsconfig.tsbuildinfo +1 -1
  229. package/package.json +11 -11
  230. package/src/input-validation/preValidation/InputPreValidator.ts +3 -5
  231. package/src/inputProcessing/CreateInputVisitor.ts +14 -14
  232. package/src/inputProcessing/UpdateInputVisitor.ts +17 -17
  233. package/src/mapper/MutationProcessorHelper.ts +16 -8
  234. package/src/mapper/Result.ts +11 -47
  235. package/src/mapper/insert/InsertBuilder.ts +8 -22
  236. package/src/mapper/insert/Inserter.ts +53 -40
  237. package/src/mapper/insert/SqlCreateInputProcessor.ts +35 -88
  238. package/src/mapper/insert/relations/ManyHasManyCreateInputProcessor.ts +59 -0
  239. package/src/mapper/insert/relations/ManyHasOneCreateInputProcessor.ts +57 -0
  240. package/src/mapper/insert/relations/OneHasManyCreateInputProcessor.ts +50 -0
  241. package/src/mapper/insert/relations/OneHasOneInverseCreateInputProcessor.ts +91 -0
  242. package/src/mapper/insert/relations/OneHasOneOwningCreateInputProcessor.ts +87 -0
  243. package/src/mapper/select/handlers/FieldsVisitor.ts +3 -0
  244. package/src/mapper/update/SqlUpdateInputProcessor.ts +48 -46
  245. package/src/mapper/update/UpdateBuilder.ts +9 -23
  246. package/src/mapper/update/Updater.ts +53 -34
  247. package/src/mapper/update/relations/ManyHasManyUpdateInputProcessor.ts +116 -0
  248. package/src/mapper/update/relations/ManyHasOneUpdateInputProcessor.ts +125 -0
  249. package/src/mapper/update/relations/OneHasManyUpdateInputProcessor.ts +111 -0
  250. package/src/mapper/{relations → update/relations}/OneHasOneInverseUpdateInputProcessor.ts +93 -73
  251. package/src/mapper/update/relations/OneHasOneOwningUpdateInputProcessor.ts +243 -0
  252. package/tests/cases/integration/graphQlRequests/insert/oneHasMany/create.test.ts +8 -8
  253. package/tests/cases/integration/graphQlRequests/update/oneHasMany/connectOrCreate.test.ts +4 -4
  254. package/dist/development/src/mapper/DataManipulationBuilder.cjs +0 -5
  255. package/dist/development/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  256. package/dist/development/src/mapper/DataManipulationBuilder.js +0 -5
  257. package/dist/development/src/mapper/DataManipulationBuilder.js.map +0 -1
  258. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  259. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  260. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  261. package/dist/development/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  262. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  263. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  264. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  265. package/dist/development/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  266. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  267. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  268. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  269. package/dist/development/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  270. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  271. package/dist/development/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  272. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  273. package/dist/development/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  274. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  275. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  276. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  277. package/dist/development/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  278. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  279. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  280. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  281. package/dist/development/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  282. package/dist/production/src/mapper/DataManipulationBuilder.cjs +0 -5
  283. package/dist/production/src/mapper/DataManipulationBuilder.cjs.map +0 -1
  284. package/dist/production/src/mapper/DataManipulationBuilder.js +0 -5
  285. package/dist/production/src/mapper/DataManipulationBuilder.js.map +0 -1
  286. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs +0 -75
  287. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.cjs.map +0 -1
  288. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js +0 -75
  289. package/dist/production/src/mapper/relations/ManyHasManyInputProcessor.js.map +0 -1
  290. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs +0 -114
  291. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.cjs.map +0 -1
  292. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js +0 -114
  293. package/dist/production/src/mapper/relations/ManyHasOneInputProcessor.js.map +0 -1
  294. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs +0 -72
  295. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.cjs.map +0 -1
  296. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js +0 -72
  297. package/dist/production/src/mapper/relations/OneHasManyInputProcessor.js.map +0 -1
  298. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.cjs.map +0 -1
  299. package/dist/production/src/mapper/relations/OneHasOneInverseCreateInputProcessor.js.map +0 -1
  300. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.cjs.map +0 -1
  301. package/dist/production/src/mapper/relations/OneHasOneInverseUpdateInputProcessor.js.map +0 -1
  302. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs +0 -71
  303. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.cjs.map +0 -1
  304. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js +0 -71
  305. package/dist/production/src/mapper/relations/OneHasOneOwningCreateInputProcessor.js.map +0 -1
  306. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs +0 -200
  307. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.cjs.map +0 -1
  308. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js +0 -200
  309. package/dist/production/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.js.map +0 -1
  310. package/dist/types/mapper/DataManipulationBuilder.d.ts +0 -7
  311. package/dist/types/mapper/DataManipulationBuilder.d.ts.map +0 -1
  312. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts +0 -32
  313. package/dist/types/mapper/relations/ManyHasManyInputProcessor.d.ts.map +0 -1
  314. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts +0 -32
  315. package/dist/types/mapper/relations/ManyHasOneInputProcessor.d.ts.map +0 -1
  316. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts +0 -29
  317. package/dist/types/mapper/relations/OneHasManyInputProcessor.d.ts.map +0 -1
  318. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts +0 -21
  319. package/dist/types/mapper/relations/OneHasOneInverseCreateInputProcessor.d.ts.map +0 -1
  320. package/dist/types/mapper/relations/OneHasOneInverseUpdateInputProcessor.d.ts.map +0 -1
  321. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts +0 -21
  322. package/dist/types/mapper/relations/OneHasOneOwningCreateInputProcessor.d.ts.map +0 -1
  323. package/dist/types/mapper/relations/OneHasOneOwningUpdateInputProcessor.d.ts.map +0 -1
  324. package/src/mapper/DataManipulationBuilder.ts +0 -12
  325. package/src/mapper/relations/ManyHasManyInputProcessor.ts +0 -108
  326. package/src/mapper/relations/ManyHasOneInputProcessor.ts +0 -158
  327. package/src/mapper/relations/OneHasManyInputProcessor.ts +0 -101
  328. package/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts +0 -99
  329. package/src/mapper/relations/OneHasOneOwningCreateInputProcessor.ts +0 -92
  330. package/src/mapper/relations/OneHasOneOwningUpdateInputProcessor.ts +0 -253
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Result = require("../Result.cjs");
4
- class ManyHasManyInputProcessor {
5
- constructor(mapper) {
6
- this.mapper = mapper;
7
- }
8
- async connect({ entity, targetEntity, relation, targetRelation, input }, primary) {
9
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input);
10
- if (!otherPrimary) {
11
- return [new Result.MutationEntryNotFoundError([], input)];
12
- }
13
- return await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
14
- }
15
- async create({ entity, targetEntity, relation, input }, primary) {
16
- const insertResult = await this.mapper.insert(targetEntity, input);
17
- const insertPrimary = Result.getInsertPrimary(insertResult);
18
- if (!insertPrimary) {
19
- return insertResult;
20
- }
21
- return [
22
- ...insertResult,
23
- ...await this.mapper.connectJunction(entity, relation, primary, insertPrimary)
24
- ];
25
- }
26
- async connectOrCreate(context, primary) {
27
- let otherPrimary = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect);
28
- if (!otherPrimary) {
29
- const insertResult = await this.mapper.insert(context.targetEntity, context.input.create);
30
- otherPrimary = Result.getInsertPrimary(insertResult);
31
- if (!otherPrimary) {
32
- return insertResult;
33
- }
34
- }
35
- return await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary);
36
- }
37
- async update({ entity, targetEntity, relation, input: { where, data } }, primary) {
38
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where);
39
- if (!otherPrimary) {
40
- return [new Result.MutationEntryNotFoundError([], where)];
41
- }
42
- return [
43
- ...await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, data),
44
- ...await this.mapper.connectJunction(entity, relation, primary, otherPrimary)
45
- ];
46
- }
47
- async upsert({ entity, relation, targetEntity, input: { create, update, where } }, primary) {
48
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where);
49
- if (otherPrimary) {
50
- const updateResult = await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, update);
51
- const connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
52
- return [...updateResult, ...connectResult];
53
- } else {
54
- const insertResult = await this.mapper.insert(targetEntity, create);
55
- const primaryValue = Result.getInsertPrimary(insertResult);
56
- if (!primaryValue) {
57
- return insertResult;
58
- }
59
- const connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue);
60
- return [...insertResult, ...connectResult];
61
- }
62
- }
63
- async disconnect({ entity, targetEntity, relation, input }, primary) {
64
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input);
65
- if (!otherPrimary) {
66
- return [new Result.MutationEntryNotFoundError([], input)];
67
- }
68
- return await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary);
69
- }
70
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
71
- return await this.mapper.delete(targetEntity, input);
72
- }
73
- }
74
- exports.ManyHasManyInputProcessor = ManyHasManyInputProcessor;
75
- //# sourceMappingURL=ManyHasManyInputProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManyHasManyInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/ManyHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { getInsertPrimary, MutationEntryNotFoundError, MutationResultList } from '../Result'\nimport { Mapper } from '../Mapper'\n\ntype RelationContext = Model.ManyHasManyOwningContext | Model.ManyHasManyInverseContext\n\nexport class ManyHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\t\treturn await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, relation, input }: RelationContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\tif (!insertPrimary) {\n\t\t\treturn insertResult\n\t\t}\n\t\treturn [\n\t\t\t...insertResult,\n\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, insertPrimary)),\n\t\t]\n\t}\n\n\tpublic async connectOrCreate(\n\t\tcontext: RelationContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tlet otherPrimary = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect)\n\t\tif (!otherPrimary) {\n\t\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input.create)\n\t\t\totherPrimary = getInsertPrimary(insertResult)\n\t\t\tif (!otherPrimary) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t}\n\t\treturn await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary)\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, relation, input: { where, data } }: RelationContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], where)]\n\t\t}\n\t\treturn [\n\t\t\t...(await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, data)),\n\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, otherPrimary)),\n\t\t]\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update, where } }: RelationContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\tif (otherPrimary) {\n\t\t\tconst updateResult = await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, update)\n\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t\treturn [...updateResult, ...connectResult]\n\t\t} else {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\n\t\t\tconst primaryValue = getInsertPrimary(insertResult)\n\t\t\tif (!primaryValue) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue)\n\t\t\treturn [...insertResult, ...connectResult]\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\n\t\treturn await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, input)\n\t}\n}\n"],"names":["MutationEntryNotFoundError","getInsertPrimary"],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- import { MutationEntryNotFoundError, getInsertPrimary } from "../Result.js";
2
- class ManyHasManyInputProcessor {
3
- constructor(mapper) {
4
- this.mapper = mapper;
5
- }
6
- async connect({ entity, targetEntity, relation, targetRelation, input }, primary) {
7
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input);
8
- if (!otherPrimary) {
9
- return [new MutationEntryNotFoundError([], input)];
10
- }
11
- return await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
12
- }
13
- async create({ entity, targetEntity, relation, input }, primary) {
14
- const insertResult = await this.mapper.insert(targetEntity, input);
15
- const insertPrimary = getInsertPrimary(insertResult);
16
- if (!insertPrimary) {
17
- return insertResult;
18
- }
19
- return [
20
- ...insertResult,
21
- ...await this.mapper.connectJunction(entity, relation, primary, insertPrimary)
22
- ];
23
- }
24
- async connectOrCreate(context, primary) {
25
- let otherPrimary = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect);
26
- if (!otherPrimary) {
27
- const insertResult = await this.mapper.insert(context.targetEntity, context.input.create);
28
- otherPrimary = getInsertPrimary(insertResult);
29
- if (!otherPrimary) {
30
- return insertResult;
31
- }
32
- }
33
- return await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary);
34
- }
35
- async update({ entity, targetEntity, relation, input: { where, data } }, primary) {
36
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where);
37
- if (!otherPrimary) {
38
- return [new MutationEntryNotFoundError([], where)];
39
- }
40
- return [
41
- ...await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, data),
42
- ...await this.mapper.connectJunction(entity, relation, primary, otherPrimary)
43
- ];
44
- }
45
- async upsert({ entity, relation, targetEntity, input: { create, update, where } }, primary) {
46
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where);
47
- if (otherPrimary) {
48
- const updateResult = await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, update);
49
- const connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary);
50
- return [...updateResult, ...connectResult];
51
- } else {
52
- const insertResult = await this.mapper.insert(targetEntity, create);
53
- const primaryValue = getInsertPrimary(insertResult);
54
- if (!primaryValue) {
55
- return insertResult;
56
- }
57
- const connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue);
58
- return [...insertResult, ...connectResult];
59
- }
60
- }
61
- async disconnect({ entity, targetEntity, relation, input }, primary) {
62
- const otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input);
63
- if (!otherPrimary) {
64
- return [new MutationEntryNotFoundError([], input)];
65
- }
66
- return await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary);
67
- }
68
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
69
- return await this.mapper.delete(targetEntity, input);
70
- }
71
- }
72
- export {
73
- ManyHasManyInputProcessor
74
- };
75
- //# sourceMappingURL=ManyHasManyInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManyHasManyInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/ManyHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { getInsertPrimary, MutationEntryNotFoundError, MutationResultList } from '../Result'\nimport { Mapper } from '../Mapper'\n\ntype RelationContext = Model.ManyHasManyOwningContext | Model.ManyHasManyInverseContext\n\nexport class ManyHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\t\treturn await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, relation, input }: RelationContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\tif (!insertPrimary) {\n\t\t\treturn insertResult\n\t\t}\n\t\treturn [\n\t\t\t...insertResult,\n\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, insertPrimary)),\n\t\t]\n\t}\n\n\tpublic async connectOrCreate(\n\t\tcontext: RelationContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t): Promise<MutationResultList> {\n\t\tlet otherPrimary = await this.mapper.getPrimaryValue(context.targetEntity, context.input.connect)\n\t\tif (!otherPrimary) {\n\t\t\tconst insertResult = await this.mapper.insert(context.targetEntity, context.input.create)\n\t\t\totherPrimary = getInsertPrimary(insertResult)\n\t\t\tif (!otherPrimary) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t}\n\t\treturn await this.mapper.connectJunction(context.entity, context.relation, primary, otherPrimary)\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, relation, input: { where, data } }: RelationContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], where)]\n\t\t}\n\t\treturn [\n\t\t\t...(await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, data)),\n\t\t\t...(await this.mapper.connectJunction(entity, relation, primary, otherPrimary)),\n\t\t]\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update, where } }: RelationContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, where)\n\t\tif (otherPrimary) {\n\t\t\tconst updateResult = await this.mapper.update(targetEntity, { [targetEntity.primary]: otherPrimary }, update)\n\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, otherPrimary)\n\t\t\treturn [...updateResult, ...connectResult]\n\t\t} else {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\n\t\t\tconst primaryValue = getInsertPrimary(insertResult)\n\t\t\tif (!primaryValue) {\n\t\t\t\treturn insertResult\n\t\t\t}\n\t\t\tconst connectResult = await this.mapper.connectJunction(entity, relation, primary, primaryValue)\n\t\t\treturn [...insertResult, ...connectResult]\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst otherPrimary = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!otherPrimary) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\n\t\treturn await this.mapper.disconnectJunction(entity, relation, primary, otherPrimary)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: RelationContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, input)\n\t}\n}\n"],"names":[],"mappings":";AAOO,MAAM,0BAA0B;AAAA,EACtC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,UAAM,eAAe,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AAC1E,QAAI,CAAC,cAAc;AAClB,aAAO,CAAC,IAAI,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AACA,WAAO,MAAM,KAAK,OAAO,gBAAgB,QAAQ,UAAU,SAAS,YAAY;AAAA,EACjF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,SAClC,SACC;AACD,UAAM,eAAe,MAAM,KAAK,OAAO,OAAO,cAAc,KAAK;AAC3D,UAAA,gBAAgB,iBAAiB,YAAY;AACnD,QAAI,CAAC,eAAe;AACZ,aAAA;AAAA,IACR;AACO,WAAA;AAAA,MACN,GAAG;AAAA,MACH,GAAI,MAAM,KAAK,OAAO,gBAAgB,QAAQ,UAAU,SAAS,aAAa;AAAA,IAAA;AAAA,EAEhF;AAAA,EAEA,MAAa,gBACZ,SACA,SAC8B;AAC1B,QAAA,eAAe,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,QAAQ,MAAM,OAAO;AAChG,QAAI,CAAC,cAAc;AACZ,YAAA,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,MAAM,MAAM;AACxF,qBAAe,iBAAiB,YAAY;AAC5C,UAAI,CAAC,cAAc;AACX,eAAA;AAAA,MACR;AAAA,IACD;AACO,WAAA,MAAM,KAAK,OAAO,gBAAgB,QAAQ,QAAQ,QAAQ,UAAU,SAAS,YAAY;AAAA,EACjG;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,OAAO,EAAE,OAAO,OAAO,GACzD,SACC;AACD,UAAM,eAAe,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AAC1E,QAAI,CAAC,cAAc;AAClB,aAAO,CAAC,IAAI,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AACO,WAAA;AAAA,MACN,GAAI,MAAM,KAAK,OAAO,OAAO,cAAc,EAAE,CAAC,aAAa,OAAO,GAAG,gBAAgB,IAAI;AAAA,MACzF,GAAI,MAAM,KAAK,OAAO,gBAAgB,QAAQ,UAAU,SAAS,YAAY;AAAA,IAAA;AAAA,EAE/E;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,UAAU,cAAc,OAAO,EAAE,QAAQ,QAAQ,MAAM,EAAA,GACjE,SACC;AACD,UAAM,eAAe,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AAC1E,QAAI,cAAc;AACjB,YAAM,eAAe,MAAM,KAAK,OAAO,OAAO,cAAc,EAAE,CAAC,aAAa,OAAO,GAAG,gBAAgB,MAAM;AACtG,YAAA,gBAAgB,MAAM,KAAK,OAAO,gBAAgB,QAAQ,UAAU,SAAS,YAAY;AAC/F,aAAO,CAAC,GAAG,cAAc,GAAG,aAAa;AAAA,IAAA,OACnC;AACN,YAAM,eAAe,MAAM,KAAK,OAAO,OAAO,cAAc,MAAM;AAE5D,YAAA,eAAe,iBAAiB,YAAY;AAClD,UAAI,CAAC,cAAc;AACX,eAAA;AAAA,MACR;AACM,YAAA,gBAAgB,MAAM,KAAK,OAAO,gBAAgB,QAAQ,UAAU,SAAS,YAAY;AAC/F,aAAO,CAAC,GAAG,cAAc,GAAG,aAAa;AAAA,IAC1C;AAAA,EACD;AAAA,EAEA,MAAa,WACZ,EAAE,QAAQ,cAAc,UAAU,SAClC,SACC;AACD,UAAM,eAAe,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AAC1E,QAAI,CAAC,cAAc;AAClB,aAAO,CAAC,IAAI,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AAEA,WAAO,MAAM,KAAK,OAAO,mBAAmB,QAAQ,UAAU,SAAS,YAAY;AAAA,EACpF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,KAAK;AAAA,EACpD;AACD;"}
@@ -1,114 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const schema = require("@contember/schema");
4
- const Result = require("../Result.cjs");
5
- const DataManipulationBuilder = require("../DataManipulationBuilder.cjs");
6
- class ManyHasOneInputProcessor {
7
- constructor(mapper) {
8
- this.mapper = mapper;
9
- }
10
- async connect({ targetEntity, relation, input }, builder) {
11
- const result = [];
12
- await builder.addFieldValue(relation.name, async () => {
13
- const value = await this.mapper.getPrimaryValue(targetEntity, input);
14
- if (!value) {
15
- result.push(new Result.MutationEntryNotFoundError([], input));
16
- return DataManipulationBuilder.AbortDataManipulation;
17
- }
18
- return value;
19
- });
20
- return result;
21
- }
22
- async create({ relation, targetEntity, input }, builder) {
23
- const result = [];
24
- await builder.addFieldValue(relation.name, async () => {
25
- const insertResult = await this.mapper.insert(targetEntity, input);
26
- const value = Result.getInsertPrimary(insertResult);
27
- if (!value) {
28
- result.push(...insertResult);
29
- return DataManipulationBuilder.AbortDataManipulation;
30
- }
31
- return value;
32
- });
33
- return result;
34
- }
35
- async connectOrCreate({ input: { connect, create }, relation, targetEntity }, builder) {
36
- const result = [];
37
- await builder.addFieldValue(relation.name, async () => {
38
- const value = await this.mapper.getPrimaryValue(targetEntity, connect);
39
- if (value) {
40
- return value;
41
- }
42
- const insertPromise = this.mapper.insert(targetEntity, create);
43
- const insertResult = await insertPromise;
44
- const primary = Result.getInsertPrimary(insertResult);
45
- if (!primary) {
46
- result.push(...insertResult);
47
- return DataManipulationBuilder.AbortDataManipulation;
48
- }
49
- return primary;
50
- });
51
- return result;
52
- }
53
- async update({ entity, relation, targetEntity, targetRelation, input }, primary) {
54
- const inversePrimary = await this.mapper.selectField(
55
- entity,
56
- { [entity.primary]: primary },
57
- relation.name
58
- );
59
- if (!inversePrimary) {
60
- return [new Result.MutationNothingToDo([], Result.NothingToDoReason.emptyRelation)];
61
- }
62
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input);
63
- }
64
- async upsert({ entity, relation, targetEntity, input: { create, update } }, builder, primary) {
65
- const select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name);
66
- const result = [];
67
- await builder.addFieldValue(relation.name, async () => {
68
- const primary2 = await select;
69
- if (primary2) {
70
- return void 0;
71
- }
72
- const insertResult = await this.mapper.insert(targetEntity, create);
73
- const insertPrimary = Result.getInsertPrimary(insertResult);
74
- if (insertPrimary) {
75
- return insertPrimary;
76
- }
77
- result.push(...insertResult);
78
- return DataManipulationBuilder.AbortDataManipulation;
79
- });
80
- const inversePrimary = await select;
81
- if (inversePrimary) {
82
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update);
83
- } else {
84
- return result;
85
- }
86
- }
87
- async disconnect({ entity, targetEntity, relation, targetRelation }, builder) {
88
- if (!relation.nullable) {
89
- return [new Result.MutationConstraintViolationError([], Result.ConstraintType.notNull)];
90
- }
91
- builder.addFieldValue(relation.name, null);
92
- return [];
93
- }
94
- async delete({ entity, targetEntity, relation, targetRelation }, builder, primary) {
95
- if (!relation.nullable && relation.joiningColumn.onDelete !== schema.Model.OnDelete.cascade) {
96
- return [new Result.MutationConstraintViolationError([], Result.ConstraintType.notNull)];
97
- }
98
- if (relation.joiningColumn.onDelete === schema.Model.OnDelete.restrict) {
99
- console.error(
100
- "[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version."
101
- );
102
- builder.addFieldValue(relation.name, null);
103
- }
104
- const inversePrimary = await this.mapper.selectField(
105
- entity,
106
- { [entity.primary]: primary },
107
- relation.name
108
- );
109
- await builder.update;
110
- return await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary });
111
- }
112
- }
113
- exports.ManyHasOneInputProcessor = ManyHasOneInputProcessor;
114
- //# sourceMappingURL=ManyHasOneInputProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManyHasOneInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/ManyHasOneInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport {\n\tConstraintType,\n\tgetInsertPrimary,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tNothingToDoReason,\n} from '../Result'\nimport { Mapper } from '../Mapper'\nimport { AbortDataManipulation, DataManipulationBuilder } from '../DataManipulationBuilder'\nimport { UpdateBuilder } from '../update'\n\nexport class ManyHasOneInputProcessor {\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ targetEntity, relation, input }: Model.ManyHasOneContext & { input: Input.UniqueWhere },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(new MutationEntryNotFoundError([], input))\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async create(\n\t\t{ relation, targetEntity, input }: Model.ManyHasOneContext & { input: Input.CreateDataInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\t\tconst value = getInsertPrimary(insertResult)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input: { connect, create }, relation, targetEntity }: Model.ManyHasOneContext & { input: Input.ConnectOrCreateInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, connect)\n\t\t\tif (value) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tconst insertPromise = this.mapper.insert(targetEntity, create)\n\t\t\tconst insertResult = await insertPromise\n\t\t\tconst primary = getInsertPrimary(insertResult)\n\t\t\tif (!primary) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn primary\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async update(\n\t\t{ entity, relation, targetEntity, targetRelation, input }: Model.ManyHasOneContext & { input: Input.UpdateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tif (!inversePrimary) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]\n\t\t}\n\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update } }: Model.ManyHasOneContext & { input: UpdateInputProcessor.UpsertInput },\n\t\tbuilder: DataManipulationBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name)\n\n\t\tconst result: MutationResultList = []\n\t\t// addFieldValue has to be called immediately\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst primary = await select\n\t\t\tif (primary) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\t\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\t\tif (insertPrimary) {\n\t\t\t\treturn insertPrimary\n\t\t\t}\n\t\t\tresult.push(...insertResult)\n\t\t\treturn AbortDataManipulation\n\t\t})\n\n\t\tconst inversePrimary = await select\n\t\tif (inversePrimary) {\n\t\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update)\n\t\t} else {\n\t\t\treturn result\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tif (!relation.nullable) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tbuilder.addFieldValue(relation.name, null)\n\t\treturn []\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: UpdateBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tif (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tif (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version.',\n\t\t\t)\n\t\t\tbuilder.addFieldValue(relation.name, null)\n\t\t}\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tawait builder.update\n\t\treturn await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary })\n\t}\n}\n"],"names":["MutationEntryNotFoundError","AbortDataManipulation","getInsertPrimary","MutationNothingToDo","NothingToDoReason","primary","MutationConstraintViolationError","ConstraintType","Model"],"mappings":"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"}
@@ -1,114 +0,0 @@
1
- import { Model } from "@contember/schema";
2
- import { MutationEntryNotFoundError, getInsertPrimary, MutationNothingToDo, NothingToDoReason, MutationConstraintViolationError, ConstraintType } from "../Result.js";
3
- import { AbortDataManipulation } from "../DataManipulationBuilder.js";
4
- class ManyHasOneInputProcessor {
5
- constructor(mapper) {
6
- this.mapper = mapper;
7
- }
8
- async connect({ targetEntity, relation, input }, builder) {
9
- const result = [];
10
- await builder.addFieldValue(relation.name, async () => {
11
- const value = await this.mapper.getPrimaryValue(targetEntity, input);
12
- if (!value) {
13
- result.push(new MutationEntryNotFoundError([], input));
14
- return AbortDataManipulation;
15
- }
16
- return value;
17
- });
18
- return result;
19
- }
20
- async create({ relation, targetEntity, input }, builder) {
21
- const result = [];
22
- await builder.addFieldValue(relation.name, async () => {
23
- const insertResult = await this.mapper.insert(targetEntity, input);
24
- const value = getInsertPrimary(insertResult);
25
- if (!value) {
26
- result.push(...insertResult);
27
- return AbortDataManipulation;
28
- }
29
- return value;
30
- });
31
- return result;
32
- }
33
- async connectOrCreate({ input: { connect, create }, relation, targetEntity }, builder) {
34
- const result = [];
35
- await builder.addFieldValue(relation.name, async () => {
36
- const value = await this.mapper.getPrimaryValue(targetEntity, connect);
37
- if (value) {
38
- return value;
39
- }
40
- const insertPromise = this.mapper.insert(targetEntity, create);
41
- const insertResult = await insertPromise;
42
- const primary = getInsertPrimary(insertResult);
43
- if (!primary) {
44
- result.push(...insertResult);
45
- return AbortDataManipulation;
46
- }
47
- return primary;
48
- });
49
- return result;
50
- }
51
- async update({ entity, relation, targetEntity, targetRelation, input }, primary) {
52
- const inversePrimary = await this.mapper.selectField(
53
- entity,
54
- { [entity.primary]: primary },
55
- relation.name
56
- );
57
- if (!inversePrimary) {
58
- return [new MutationNothingToDo([], NothingToDoReason.emptyRelation)];
59
- }
60
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input);
61
- }
62
- async upsert({ entity, relation, targetEntity, input: { create, update } }, builder, primary) {
63
- const select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name);
64
- const result = [];
65
- await builder.addFieldValue(relation.name, async () => {
66
- const primary2 = await select;
67
- if (primary2) {
68
- return void 0;
69
- }
70
- const insertResult = await this.mapper.insert(targetEntity, create);
71
- const insertPrimary = getInsertPrimary(insertResult);
72
- if (insertPrimary) {
73
- return insertPrimary;
74
- }
75
- result.push(...insertResult);
76
- return AbortDataManipulation;
77
- });
78
- const inversePrimary = await select;
79
- if (inversePrimary) {
80
- return await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update);
81
- } else {
82
- return result;
83
- }
84
- }
85
- async disconnect({ entity, targetEntity, relation, targetRelation }, builder) {
86
- if (!relation.nullable) {
87
- return [new MutationConstraintViolationError([], ConstraintType.notNull)];
88
- }
89
- builder.addFieldValue(relation.name, null);
90
- return [];
91
- }
92
- async delete({ entity, targetEntity, relation, targetRelation }, builder, primary) {
93
- if (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {
94
- return [new MutationConstraintViolationError([], ConstraintType.notNull)];
95
- }
96
- if (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {
97
- console.error(
98
- "[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version."
99
- );
100
- builder.addFieldValue(relation.name, null);
101
- }
102
- const inversePrimary = await this.mapper.selectField(
103
- entity,
104
- { [entity.primary]: primary },
105
- relation.name
106
- );
107
- await builder.update;
108
- return await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary });
109
- }
110
- }
111
- export {
112
- ManyHasOneInputProcessor
113
- };
114
- //# sourceMappingURL=ManyHasOneInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ManyHasOneInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/ManyHasOneInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport {\n\tConstraintType,\n\tgetInsertPrimary,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationNothingToDo,\n\tMutationResultList,\n\tNothingToDoReason,\n} from '../Result'\nimport { Mapper } from '../Mapper'\nimport { AbortDataManipulation, DataManipulationBuilder } from '../DataManipulationBuilder'\nimport { UpdateBuilder } from '../update'\n\nexport class ManyHasOneInputProcessor {\n\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ targetEntity, relation, input }: Model.ManyHasOneContext & { input: Input.UniqueWhere },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(new MutationEntryNotFoundError([], input))\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async create(\n\t\t{ relation, targetEntity, input }: Model.ManyHasOneContext & { input: Input.CreateDataInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, input)\n\t\t\tconst value = getInsertPrimary(insertResult)\n\t\t\tif (!value) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn value\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input: { connect, create }, relation, targetEntity }: Model.ManyHasOneContext & { input: Input.ConnectOrCreateInput },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tconst result: MutationResultList = []\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst value = await this.mapper.getPrimaryValue(targetEntity, connect)\n\t\t\tif (value) {\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tconst insertPromise = this.mapper.insert(targetEntity, create)\n\t\t\tconst insertResult = await insertPromise\n\t\t\tconst primary = getInsertPrimary(insertResult)\n\t\t\tif (!primary) {\n\t\t\t\tresult.push(...insertResult)\n\t\t\t\treturn AbortDataManipulation\n\t\t\t}\n\t\t\treturn primary\n\t\t})\n\t\treturn result\n\t}\n\n\tpublic async update(\n\t\t{ entity, relation, targetEntity, targetRelation, input }: Model.ManyHasOneContext & { input: Input.UpdateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tif (!inversePrimary) {\n\t\t\treturn [new MutationNothingToDo([], NothingToDoReason.emptyRelation)]\n\t\t}\n\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, input)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, relation, targetEntity, input: { create, update } }: Model.ManyHasOneContext & { input: UpdateInputProcessor.UpsertInput },\n\t\tbuilder: DataManipulationBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst select = this.mapper.selectField(entity, { [entity.primary]: primary }, relation.name)\n\n\t\tconst result: MutationResultList = []\n\t\t// addFieldValue has to be called immediately\n\t\tawait builder.addFieldValue(relation.name, async () => {\n\t\t\tconst primary = await select\n\t\t\tif (primary) {\n\t\t\t\treturn undefined\n\t\t\t}\n\t\t\tconst insertResult = await this.mapper.insert(targetEntity, create)\n\t\t\tconst insertPrimary = getInsertPrimary(insertResult)\n\t\t\tif (insertPrimary) {\n\t\t\t\treturn insertPrimary\n\t\t\t}\n\t\t\tresult.push(...insertResult)\n\t\t\treturn AbortDataManipulation\n\t\t})\n\n\t\tconst inversePrimary = await select\n\t\tif (inversePrimary) {\n\t\t\treturn await this.mapper.update(targetEntity, { [targetEntity.primary]: inversePrimary }, update)\n\t\t} else {\n\t\t\treturn result\n\t\t}\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: DataManipulationBuilder,\n\t) {\n\t\tif (!relation.nullable) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tbuilder.addFieldValue(relation.name, null)\n\t\treturn []\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation }: Model.ManyHasOneContext & { input: undefined },\n\t\tbuilder: UpdateBuilder,\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tif (!relation.nullable && relation.joiningColumn.onDelete !== Model.OnDelete.cascade) {\n\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t}\n\t\tif (relation.joiningColumn.onDelete === Model.OnDelete.restrict) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'[DEPRECATED] You are deleting an entity over the relation where onDelete behaviour is set to restrict. This will fail in next version.',\n\t\t\t)\n\t\t\tbuilder.addFieldValue(relation.name, null)\n\t\t}\n\t\tconst inversePrimary = await this.mapper.selectField(\n\t\t\tentity,\n\t\t\t{ [entity.primary]: primary },\n\t\t\trelation.name,\n\t\t)\n\t\tawait builder.update\n\t\treturn await this.mapper.delete(targetEntity, { [targetEntity.primary]: inversePrimary })\n\t}\n}\n"],"names":["primary"],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const Result = require("../Result.cjs");
4
- class OneHasManyInputProcessor {
5
- constructor(mapper) {
6
- this.mapper = mapper;
7
- }
8
- async connect({ entity, targetEntity, targetRelation, input }, primary) {
9
- return await this.mapper.update(targetEntity, input, {
10
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
11
- });
12
- }
13
- async create({ entity, targetEntity, targetRelation, input }, primary) {
14
- return await this.mapper.insert(targetEntity, {
15
- ...input,
16
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
17
- });
18
- }
19
- async connectOrCreate({ entity, targetRelation, targetEntity, input: { connect, create } }, primary) {
20
- const connectData = {
21
- [targetRelation.name]: {
22
- connect: { [entity.primary]: primary }
23
- }
24
- };
25
- return await this.mapper.upsert(targetEntity, connect, connectData, {
26
- ...create,
27
- ...connectData
28
- });
29
- }
30
- async update({ entity, targetEntity, targetRelation, input: { data, where } }, primary) {
31
- return await this.mapper.update(
32
- targetEntity,
33
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
34
- {
35
- ...data
36
- // [targetRelation.name]: {connect: thisPrimary}
37
- }
38
- );
39
- }
40
- async upsert({ entity, targetEntity, targetRelation, input: { create, update, where } }, primary) {
41
- const result = await this.mapper.update(
42
- targetEntity,
43
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
44
- {
45
- ...update
46
- // [targetRelation.name]: {connect: thisPrimary}
47
- }
48
- );
49
- if (result[0].result === Result.MutationResultType.notFoundError) {
50
- return await this.mapper.insert(targetEntity, {
51
- ...create,
52
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
53
- });
54
- }
55
- return result;
56
- }
57
- async disconnect({ entity, targetEntity, relation, targetRelation, input }, primary) {
58
- return await this.mapper.update(
59
- targetEntity,
60
- { ...input, [targetRelation.name]: { [entity.primary]: primary } },
61
- { [targetRelation.name]: { disconnect: true } }
62
- );
63
- }
64
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
65
- return await this.mapper.delete(targetEntity, {
66
- ...input,
67
- [targetRelation.name]: { [entity.primary]: primary }
68
- });
69
- }
70
- }
71
- exports.OneHasManyInputProcessor = OneHasManyInputProcessor;
72
- //# sourceMappingURL=OneHasManyInputProcessor.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasManyInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { MutationResultType } from '../Result'\n\nexport class OneHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(targetEntity, input, {\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ entity, targetRelation, targetEntity, input: { connect, create } }: Model.OneHasManyContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst connectData = {\n\t\t\t[targetRelation.name]: {\n\t\t\t\tconnect: { [entity.primary]: primary },\n\t\t\t},\n\t\t}\n\t\treturn await this.mapper.upsert(targetEntity, connect, connectData, {\n\t\t\t...create,\n\t\t\t...connectData,\n\t\t})\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, targetRelation, input: { data, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, targetEntity, targetRelation, input: { create, update, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...update,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t\t...create,\n\t\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...input, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{ [targetRelation.name]: { disconnect: true } },\n\t\t)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { [entity.primary]: primary },\n\t\t})\n\t}\n}\n"],"names":["MutationResultType"],"mappings":";;;AAKO,MAAM,yBAAyB;AAAA,EACrC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,OAAO;AAAA,MACpD,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,QAAQ,gBAAgB,cAAc,OAAO,EAAE,SAAS,SAAS,GACnE,SACC;AACD,UAAM,cAAc;AAAA,MACnB,CAAC,eAAe,IAAI,GAAG;AAAA,QACtB,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,MACtC;AAAA,IAAA;AAED,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,SAAS,aAAa;AAAA,MACnE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACH;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,MAAM,QAAQ,GAC/D,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,MAAM,EAAA,GACvE,SACC;AACK,UAAA,SAAS,MAAM,KAAK,OAAO;AAAA,MAChC;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAED,QAAI,OAAO,CAAC,EAAE,WAAWA,OAAAA,mBAAmB,eAAe;AAC1D,aAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,QAC7C,GAAG;AAAA,QACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MAAA,CAChE;AAAA,IACF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,WACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE,EAAE,CAAC,eAAe,IAAI,GAAG,EAAE,YAAY,OAAO;AAAA,IAAA;AAAA,EAEhD;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,IAAA,CACnD;AAAA,EACF;AACD;;"}
@@ -1,72 +0,0 @@
1
- import { MutationResultType } from "../Result.js";
2
- class OneHasManyInputProcessor {
3
- constructor(mapper) {
4
- this.mapper = mapper;
5
- }
6
- async connect({ entity, targetEntity, targetRelation, input }, primary) {
7
- return await this.mapper.update(targetEntity, input, {
8
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
9
- });
10
- }
11
- async create({ entity, targetEntity, targetRelation, input }, primary) {
12
- return await this.mapper.insert(targetEntity, {
13
- ...input,
14
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
15
- });
16
- }
17
- async connectOrCreate({ entity, targetRelation, targetEntity, input: { connect, create } }, primary) {
18
- const connectData = {
19
- [targetRelation.name]: {
20
- connect: { [entity.primary]: primary }
21
- }
22
- };
23
- return await this.mapper.upsert(targetEntity, connect, connectData, {
24
- ...create,
25
- ...connectData
26
- });
27
- }
28
- async update({ entity, targetEntity, targetRelation, input: { data, where } }, primary) {
29
- return await this.mapper.update(
30
- targetEntity,
31
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
32
- {
33
- ...data
34
- // [targetRelation.name]: {connect: thisPrimary}
35
- }
36
- );
37
- }
38
- async upsert({ entity, targetEntity, targetRelation, input: { create, update, where } }, primary) {
39
- const result = await this.mapper.update(
40
- targetEntity,
41
- { ...where, [targetRelation.name]: { [entity.primary]: primary } },
42
- {
43
- ...update
44
- // [targetRelation.name]: {connect: thisPrimary}
45
- }
46
- );
47
- if (result[0].result === MutationResultType.notFoundError) {
48
- return await this.mapper.insert(targetEntity, {
49
- ...create,
50
- [targetRelation.name]: { connect: { [entity.primary]: primary } }
51
- });
52
- }
53
- return result;
54
- }
55
- async disconnect({ entity, targetEntity, relation, targetRelation, input }, primary) {
56
- return await this.mapper.update(
57
- targetEntity,
58
- { ...input, [targetRelation.name]: { [entity.primary]: primary } },
59
- { [targetRelation.name]: { disconnect: true } }
60
- );
61
- }
62
- async delete({ entity, targetEntity, relation, targetRelation, input }, primary) {
63
- return await this.mapper.delete(targetEntity, {
64
- ...input,
65
- [targetRelation.name]: { [entity.primary]: primary }
66
- });
67
- }
68
- }
69
- export {
70
- OneHasManyInputProcessor
71
- };
72
- //# sourceMappingURL=OneHasManyInputProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasManyInputProcessor.js","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasManyInputProcessor.ts"],"sourcesContent":["import { UpdateInputProcessor } from '../../inputProcessing'\nimport { Input, Model } from '@contember/schema'\nimport { Mapper } from '../Mapper'\nimport { MutationResultType } from '../Result'\n\nexport class OneHasManyInputProcessor {\n\tconstructor(\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(targetEntity, input, {\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async create(\n\t\t{ entity, targetEntity, targetRelation, input }: Model.OneHasManyContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ entity, targetRelation, targetEntity, input: { connect, create } }: Model.OneHasManyContext & { input: Input.ConnectOrCreateInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst connectData = {\n\t\t\t[targetRelation.name]: {\n\t\t\t\tconnect: { [entity.primary]: primary },\n\t\t\t},\n\t\t}\n\t\treturn await this.mapper.upsert(targetEntity, connect, connectData, {\n\t\t\t...create,\n\t\t\t...connectData,\n\t\t})\n\t}\n\n\tpublic async update(\n\t\t{ entity, targetEntity, targetRelation, input: { data, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpdateManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...data,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t}\n\n\tpublic async upsert(\n\t\t{ entity, targetEntity, targetRelation, input: { create, update, where } }: Model.OneHasManyContext & { input: UpdateInputProcessor.UpsertManyInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\tconst result = await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...where, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{\n\t\t\t\t...update,\n\t\t\t\t// [targetRelation.name]: {connect: thisPrimary}\n\t\t\t},\n\t\t)\n\t\tif (result[0].result === MutationResultType.notFoundError) {\n\t\t\treturn await this.mapper.insert(targetEntity, {\n\t\t\t\t...create,\n\t\t\t\t[targetRelation.name]: { connect: { [entity.primary]: primary } },\n\t\t\t})\n\t\t}\n\t\treturn result\n\t}\n\n\tpublic async disconnect(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.update(\n\t\t\ttargetEntity,\n\t\t\t{ ...input, [targetRelation.name]: { [entity.primary]: primary } },\n\t\t\t{ [targetRelation.name]: { disconnect: true } },\n\t\t)\n\t}\n\n\tpublic async delete(\n\t\t{ entity, targetEntity, relation, targetRelation, input }: Model.OneHasManyContext & { input: Input.UniqueWhere },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.delete(targetEntity, {\n\t\t\t...input,\n\t\t\t[targetRelation.name]: { [entity.primary]: primary },\n\t\t})\n\t}\n}\n"],"names":[],"mappings":";AAKO,MAAM,yBAAyB;AAAA,EACrC,YACkB,QAChB;AADgB,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,OAAO;AAAA,MACpD,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,SACxC,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,IAAA,CAChE;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,QAAQ,gBAAgB,cAAc,OAAO,EAAE,SAAS,SAAS,GACnE,SACC;AACD,UAAM,cAAc;AAAA,MACnB,CAAC,eAAe,IAAI,GAAG;AAAA,QACtB,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,MACtC;AAAA,IAAA;AAED,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc,SAAS,aAAa;AAAA,MACnE,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACH;AAAA,EACF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,MAAM,QAAQ,GAC/D,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EAEF;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,gBAAgB,OAAO,EAAE,QAAQ,QAAQ,MAAM,EAAA,GACvE,SACC;AACK,UAAA,SAAS,MAAM,KAAK,OAAO;AAAA,MAChC;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ;AAAA,IAAA;AAED,QAAI,OAAO,CAAC,EAAE,WAAW,mBAAmB,eAAe;AAC1D,aAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,QAC7C,GAAG;AAAA,QACH,CAAC,eAAe,IAAI,GAAG,EAAE,SAAS,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MAAA,CAChE;AAAA,IACF;AACO,WAAA;AAAA,EACR;AAAA,EAEA,MAAa,WACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACM,WAAA,MAAM,KAAK,OAAO;AAAA,MACxB;AAAA,MACA,EAAE,GAAG,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,UAAU;AAAA,MACjE,EAAE,CAAC,eAAe,IAAI,GAAG,EAAE,YAAY,OAAO;AAAA,IAAA;AAAA,EAEhD;AAAA,EAEA,MAAa,OACZ,EAAE,QAAQ,cAAc,UAAU,gBAAgB,MAAM,GACxD,SACC;AACD,WAAO,MAAM,KAAK,OAAO,OAAO,cAAc;AAAA,MAC7C,GAAG;AAAA,MACH,CAAC,eAAe,IAAI,GAAG,EAAE,CAAC,OAAO,OAAO,GAAG,QAAQ;AAAA,IAAA,CACnD;AAAA,EACF;AACD;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"OneHasOneInverseCreateInputProcessor.cjs","sources":["../../../../../../packages/engine-content-api/src/mapper/relations/OneHasOneInverseCreateInputProcessor.ts"],"sourcesContent":["import { InsertBuilder } from '../insert'\nimport { Mapper } from '../Mapper'\nimport {\n\tConstraintType,\n\tMutationConstraintViolationError,\n\tMutationEntryNotFoundError,\n\tMutationResultList,\n} from '../Result'\nimport { CheckedPrimary } from '../CheckedPrimary'\nimport { Input, Model } from '@contember/schema'\n\nexport class OneHasOneInverseCreateInputProcessor {\n\tconstructor(\n\t\tprivate readonly insertBuilder: InsertBuilder,\n\t\tprivate readonly mapper: Mapper,\n\t) {\n\t}\n\n\tpublic async connect(context: Model.OneHasOneInverseContext & { input: Input.UniqueWhere }) {\n\t\tconst { targetEntity, input } = context\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(targetEntity, input)\n\t\tif (!owner) {\n\t\t\treturn [new MutationEntryNotFoundError([], input)]\n\t\t}\n\n\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t}\n\n\n\tpublic async create(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n\n\tpublic async connectOrCreate(\n\t\t{ input, ...context }: Model.OneHasOneInverseContext & { input: Input.ConnectOrCreateInput },\n\t) {\n\t\tconst primary = await this.insertBuilder.insert\n\t\tif (!primary) {\n\t\t\treturn []\n\t\t}\n\t\tconst owner = await this.mapper.getPrimaryValue(context.targetEntity, input.connect)\n\t\tif (owner) {\n\t\t\treturn await this.connectInternal({ ...context, input: new CheckedPrimary(owner) }, primary)\n\t\t}\n\n\t\treturn await this.createInternal({ input: input.create, ...context }, primary)\n\t}\n\n\tprivate async connectInternal(\n\t\t{ entity, targetEntity, targetRelation, relation, input }: Model.OneHasOneInverseContext & { input: CheckedPrimary },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\n\t\tconst currentInverseSideOfOwner = await this.mapper.selectField(targetEntity, input, targetRelation.name)\n\t\tconst orphanResult: MutationResultList = []\n\t\tif (currentInverseSideOfOwner) {\n\t\t\tif (targetRelation.orphanRemoval) {\n\t\t\t\tconst orphanUnique = { [entity.primary]: currentInverseSideOfOwner }\n\t\t\t\tconst orphanDelete = await this.mapper.delete(entity, orphanUnique)\n\t\t\t\torphanResult.push(...orphanDelete)\n\t\t\t} else if (!relation.nullable) {\n\t\t\t\treturn [new MutationConstraintViolationError([], ConstraintType.notNull)]\n\t\t\t}\n\t\t}\n\n\t\tconst connectResult = await this.mapper.updateInternal(targetEntity, input, update => {\n\t\t\tupdate.addPredicates([targetRelation.name])\n\t\t\tupdate.addFieldValue(targetRelation.name, primary)\n\t\t})\n\n\t\treturn [\n\t\t\t...connectResult,\n\t\t\t...orphanResult,\n\t\t]\n\t}\n\n\tprivate async createInternal(\n\t\tcontext: Model.OneHasOneInverseContext & { input: Input.CreateDataInput },\n\t\tprimary: Input.PrimaryValue,\n\t) {\n\t\treturn await this.mapper.insert(context.targetEntity, context.input, builder => {\n\t\t\tbuilder.addPredicates([context.targetRelation.name])\n\t\t\tbuilder.addFieldValue(context.targetRelation.name, primary)\n\t\t})\n\t}\n}\n"],"names":["MutationEntryNotFoundError","CheckedPrimary","MutationConstraintViolationError","ConstraintType"],"mappings":";;;;AAWO,MAAM,qCAAqC;AAAA,EACjD,YACkB,eACA,QAChB;AAFgB,SAAA,gBAAA;AACA,SAAA,SAAA;AAAA,EAElB;AAAA,EAEA,MAAa,QAAQ,SAAuE;AACrF,UAAA,EAAE,cAAc,MAAU,IAAA;AAC1B,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACA,UAAM,QAAQ,MAAM,KAAK,OAAO,gBAAgB,cAAc,KAAK;AACnE,QAAI,CAAC,OAAO;AACX,aAAO,CAAC,IAAIA,OAAA,2BAA2B,IAAI,KAAK,CAAC;AAAA,IAClD;AAEA,WAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAIC,8BAAe,KAAK,EAAE,GAAG,OAAO;AAAA,EAC5F;AAAA,EAGA,MAAa,OACZ,SACC;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACO,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AAAA,EAEA,MAAa,gBACZ,EAAE,OAAO,GAAG,WACX;AACK,UAAA,UAAU,MAAM,KAAK,cAAc;AACzC,QAAI,CAAC,SAAS;AACb,aAAO;IACR;AACM,UAAA,QAAQ,MAAM,KAAK,OAAO,gBAAgB,QAAQ,cAAc,MAAM,OAAO;AACnF,QAAI,OAAO;AACV,aAAO,MAAM,KAAK,gBAAgB,EAAE,GAAG,SAAS,OAAO,IAAIA,8BAAe,KAAK,EAAE,GAAG,OAAO;AAAA,IAC5F;AAEO,WAAA,MAAM,KAAK,eAAe,EAAE,OAAO,MAAM,QAAQ,GAAG,WAAW,OAAO;AAAA,EAC9E;AAAA,EAEA,MAAc,gBACb,EAAE,QAAQ,cAAc,gBAAgB,UAAU,MAAM,GACxD,SACC;AAEK,UAAA,4BAA4B,MAAM,KAAK,OAAO,YAAY,cAAc,OAAO,eAAe,IAAI;AACxG,UAAM,eAAmC,CAAA;AACzC,QAAI,2BAA2B;AAC9B,UAAI,eAAe,eAAe;AACjC,cAAM,eAAe,EAAE,CAAC,OAAO,OAAO,GAAG,0BAA0B;AACnE,cAAM,eAAe,MAAM,KAAK,OAAO,OAAO,QAAQ,YAAY;AACrD,qBAAA,KAAK,GAAG,YAAY;AAAA,MAAA,WACvB,CAAC,SAAS,UAAU;AAC9B,eAAO,CAAC,IAAIC,OAAAA,iCAAiC,CAAA,GAAIC,OAAAA,eAAe,OAAO,CAAC;AAAA,MACzE;AAAA,IACD;AAEA,UAAM,gBAAgB,MAAM,KAAK,OAAO,eAAe,cAAc,OAAO,CAAU,WAAA;AACrF,aAAO,cAAc,CAAC,eAAe,IAAI,CAAC;AACnC,aAAA,cAAc,eAAe,MAAM,OAAO;AAAA,IAAA,CACjD;AAEM,WAAA;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EAEL;AAAA,EAEA,MAAc,eACb,SACA,SACC;AACM,WAAA,MAAM,KAAK,OAAO,OAAO,QAAQ,cAAc,QAAQ,OAAO,CAAW,YAAA;AAC/E,cAAQ,cAAc,CAAC,QAAQ,eAAe,IAAI,CAAC;AACnD,cAAQ,cAAc,QAAQ,eAAe,MAAM,OAAO;AAAA,IAAA,CAC1D;AAAA,EACF;AACD;;"}