@commitspark/graphql-api 0.90.0 → 1.0.0-beta.2

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 (342) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +8 -9
  3. package/dist/cjs/client.js +65 -0
  4. package/dist/cjs/client.js.map +1 -0
  5. package/dist/cjs/graphql/{apollo-config-factory.service.js → apollo-config-factory.js} +12 -17
  6. package/dist/cjs/graphql/apollo-config-factory.js.map +1 -0
  7. package/dist/cjs/graphql/errors.js +32 -0
  8. package/dist/cjs/graphql/errors.js.map +1 -0
  9. package/dist/cjs/graphql/input-type-generator.js +94 -0
  10. package/dist/cjs/graphql/input-type-generator.js.map +1 -0
  11. package/dist/cjs/graphql/queries-mutations-generator.js +70 -0
  12. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -0
  13. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +26 -0
  14. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  15. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +93 -0
  16. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  17. package/dist/cjs/graphql/{field-resolver/fieldResolver.js → resolvers/field-resolvers/types.js} +1 -1
  18. package/dist/cjs/graphql/resolvers/field-resolvers/types.js.map +1 -0
  19. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js +25 -0
  20. package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  21. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +53 -0
  22. package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  23. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +74 -0
  24. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  25. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +52 -0
  26. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  27. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +57 -0
  28. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  29. package/dist/cjs/graphql/{resolver-generators/query-type-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-by-id-resolver.js} +8 -13
  30. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
  31. package/dist/cjs/graphql/{resolver-generators/query-count-all-resolver-generator.js → resolvers/query-mutation-resolvers/query-every-resolver.js} +10 -15
  32. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  33. package/dist/cjs/graphql/{resolver-generators/query-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-type-by-id-resolver.js} +7 -14
  34. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  35. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +27 -0
  36. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  37. package/dist/cjs/graphql/resolvers/types.js +3 -0
  38. package/dist/cjs/graphql/resolvers/types.js.map +1 -0
  39. package/dist/cjs/graphql/schema-analyzer.js +38 -0
  40. package/dist/cjs/graphql/schema-analyzer.js.map +1 -0
  41. package/dist/cjs/graphql/schema-generator.js +100 -0
  42. package/dist/cjs/graphql/schema-generator.js.map +1 -0
  43. package/dist/cjs/graphql/schema-root-type-generator.js +32 -0
  44. package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -0
  45. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +115 -113
  46. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  47. package/dist/cjs/graphql/schema-utils/entry-type-util.js +24 -26
  48. package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
  49. package/dist/cjs/graphql/schema-utils/union-type-util.js +19 -16
  50. package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
  51. package/dist/cjs/graphql/schema-validator.js +23 -26
  52. package/dist/cjs/graphql/schema-validator.js.map +1 -1
  53. package/dist/cjs/index.js +10 -7
  54. package/dist/cjs/index.js.map +1 -1
  55. package/dist/cjs/persistence/persistence.js +63 -0
  56. package/dist/cjs/persistence/persistence.js.map +1 -0
  57. package/dist/esm/client.js +53 -0
  58. package/dist/esm/client.js.map +1 -0
  59. package/dist/esm/graphql/apollo-config-factory.js +12 -0
  60. package/dist/esm/graphql/apollo-config-factory.js.map +1 -0
  61. package/dist/esm/graphql/errors.js +28 -0
  62. package/dist/esm/graphql/errors.js.map +1 -0
  63. package/dist/esm/graphql/input-type-generator.js +89 -0
  64. package/dist/esm/graphql/input-type-generator.js.map +1 -0
  65. package/dist/esm/graphql/queries-mutations-generator.js +66 -0
  66. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -0
  67. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +13 -0
  68. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
  69. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +80 -0
  70. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
  71. package/dist/esm/graphql/resolvers/field-resolvers/types.js +2 -0
  72. package/dist/esm/graphql/resolvers/field-resolvers/types.js.map +1 -0
  73. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js +15 -0
  74. package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
  75. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +50 -0
  76. package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
  77. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +67 -0
  78. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
  79. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +48 -0
  80. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
  81. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +60 -0
  82. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
  83. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +6 -0
  84. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
  85. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js +8 -0
  86. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  87. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +5 -0
  88. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
  89. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +14 -0
  90. package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
  91. package/dist/esm/graphql/resolvers/types.js +2 -0
  92. package/dist/esm/graphql/resolvers/types.js.map +1 -0
  93. package/dist/esm/graphql/schema-analyzer.js +34 -0
  94. package/dist/esm/graphql/schema-analyzer.js.map +1 -0
  95. package/dist/esm/graphql/schema-generator.js +94 -0
  96. package/dist/esm/graphql/schema-generator.js.map +1 -0
  97. package/dist/esm/graphql/schema-root-type-generator.js +29 -0
  98. package/dist/esm/graphql/schema-root-type-generator.js.map +1 -0
  99. package/dist/esm/graphql/schema-utils/entry-reference-util.js +108 -108
  100. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  101. package/dist/esm/graphql/schema-utils/entry-type-util.js +20 -23
  102. package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
  103. package/dist/esm/graphql/schema-utils/union-type-util.js +17 -14
  104. package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
  105. package/dist/esm/graphql/schema-validator.js +18 -20
  106. package/dist/esm/graphql/schema-validator.js.map +1 -1
  107. package/dist/esm/index.js +8 -5
  108. package/dist/esm/index.js.map +1 -1
  109. package/dist/esm/persistence/persistence.js +40 -0
  110. package/dist/esm/persistence/persistence.js.map +1 -0
  111. package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
  112. package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
  113. package/dist/tsconfig.build.types.tsbuildinfo +1 -1
  114. package/dist/types/client.d.ts +27 -0
  115. package/dist/types/client.d.ts.map +1 -0
  116. package/dist/types/graphql/apollo-config-factory.d.ts +4 -0
  117. package/dist/types/graphql/apollo-config-factory.d.ts.map +1 -0
  118. package/dist/types/graphql/errors.d.ts +20 -0
  119. package/dist/types/graphql/errors.d.ts.map +1 -0
  120. package/dist/types/graphql/input-type-generator.d.ts +6 -0
  121. package/dist/types/graphql/input-type-generator.d.ts.map +1 -0
  122. package/dist/types/graphql/queries-mutations-generator.d.ts +18 -0
  123. package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -0
  124. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +3 -0
  125. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
  126. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +3 -0
  127. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
  128. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts +12 -0
  129. package/dist/types/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
  130. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +3 -0
  131. package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
  132. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +8 -0
  133. package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
  134. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +5 -0
  135. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
  136. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +5 -0
  137. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -0
  138. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +5 -0
  139. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -0
  140. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +5 -0
  141. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -0
  142. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +5 -0
  143. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
  144. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +4 -0
  145. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
  146. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +4 -0
  147. package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
  148. package/dist/types/graphql/resolvers/types.d.ts +8 -0
  149. package/dist/types/graphql/resolvers/types.d.ts.map +1 -0
  150. package/dist/types/graphql/{schema-analyzer.service.d.ts → schema-analyzer.d.ts} +3 -5
  151. package/dist/types/graphql/schema-analyzer.d.ts.map +1 -0
  152. package/dist/types/graphql/schema-generator.d.ts +4 -0
  153. package/dist/types/graphql/schema-generator.d.ts.map +1 -0
  154. package/dist/types/graphql/schema-root-type-generator.d.ts +3 -0
  155. package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -0
  156. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +2 -13
  157. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
  158. package/dist/types/graphql/schema-utils/entry-type-util.d.ts +3 -5
  159. package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
  160. package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -4
  161. package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
  162. package/dist/types/graphql/schema-validator.d.ts +1 -4
  163. package/dist/types/graphql/schema-validator.d.ts.map +1 -1
  164. package/dist/types/index.d.ts +9 -3
  165. package/dist/types/index.d.ts.map +1 -1
  166. package/dist/types/persistence/persistence.d.ts +6 -0
  167. package/dist/types/persistence/persistence.d.ts.map +1 -0
  168. package/package.json +10 -2
  169. package/src/client.ts +114 -0
  170. package/src/graphql/apollo-config-factory.ts +17 -0
  171. package/src/graphql/errors.ts +43 -0
  172. package/src/graphql/input-type-generator.ts +126 -0
  173. package/src/graphql/queries-mutations-generator.ts +138 -0
  174. package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +29 -0
  175. package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +125 -0
  176. package/src/graphql/{field-resolver/fieldResolver.ts → resolvers/field-resolvers/types.ts} +5 -4
  177. package/src/graphql/resolvers/field-resolvers/union-value-resolver.ts +24 -0
  178. package/src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts +91 -0
  179. package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +116 -0
  180. package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +85 -0
  181. package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +119 -0
  182. package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +20 -0
  183. package/src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts +21 -0
  184. package/src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts +12 -0
  185. package/src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts +19 -0
  186. package/src/graphql/resolvers/types.ts +14 -0
  187. package/src/graphql/schema-analyzer.ts +55 -0
  188. package/src/graphql/schema-generator.ts +166 -0
  189. package/src/graphql/schema-root-type-generator.ts +35 -0
  190. package/src/graphql/schema-utils/entry-reference-util.ts +175 -167
  191. package/src/graphql/schema-utils/entry-type-util.ts +25 -28
  192. package/src/graphql/schema-utils/union-type-util.ts +26 -15
  193. package/src/graphql/schema-validator.ts +29 -31
  194. package/src/index.ts +27 -5
  195. package/src/persistence/persistence.ts +70 -0
  196. package/dist/cjs/app/api.service.js +0 -74
  197. package/dist/cjs/app/api.service.js.map +0 -1
  198. package/dist/cjs/container.js +0 -53
  199. package/dist/cjs/container.js.map +0 -1
  200. package/dist/cjs/graphql/apollo-config-factory.service.js.map +0 -1
  201. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js +0 -26
  202. package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  203. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js +0 -73
  204. package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  205. package/dist/cjs/graphql/field-resolver/fieldResolver.js.map +0 -1
  206. package/dist/cjs/graphql/field-resolver/union-value-resolver.js +0 -21
  207. package/dist/cjs/graphql/field-resolver/union-value-resolver.js.map +0 -1
  208. package/dist/cjs/graphql/input-type-generator.service.js +0 -97
  209. package/dist/cjs/graphql/input-type-generator.service.js.map +0 -1
  210. package/dist/cjs/graphql/queries-mutations-generator.service.js +0 -82
  211. package/dist/cjs/graphql/queries-mutations-generator.service.js.map +0 -1
  212. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -83
  213. package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  214. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -60
  215. package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  216. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -62
  217. package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  218. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -58
  219. package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  220. package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js +0 -27
  221. package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  222. package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  223. package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  224. package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  225. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js +0 -33
  226. package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  227. package/dist/cjs/graphql/schema-analyzer.service.js +0 -41
  228. package/dist/cjs/graphql/schema-analyzer.service.js.map +0 -1
  229. package/dist/cjs/graphql/schema-generator.service.js +0 -103
  230. package/dist/cjs/graphql/schema-generator.service.js.map +0 -1
  231. package/dist/cjs/graphql/schema-root-type-generator.service.js +0 -39
  232. package/dist/cjs/graphql/schema-root-type-generator.service.js.map +0 -1
  233. package/dist/cjs/persistence/persistence.service.js +0 -66
  234. package/dist/cjs/persistence/persistence.service.js.map +0 -1
  235. package/dist/esm/app/api.service.js +0 -61
  236. package/dist/esm/app/api.service.js.map +0 -1
  237. package/dist/esm/container.js +0 -50
  238. package/dist/esm/container.js.map +0 -1
  239. package/dist/esm/graphql/apollo-config-factory.service.js +0 -17
  240. package/dist/esm/graphql/apollo-config-factory.service.js.map +0 -1
  241. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js +0 -13
  242. package/dist/esm/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
  243. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js +0 -73
  244. package/dist/esm/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
  245. package/dist/esm/graphql/field-resolver/fieldResolver.js +0 -2
  246. package/dist/esm/graphql/field-resolver/fieldResolver.js.map +0 -1
  247. package/dist/esm/graphql/field-resolver/union-value-resolver.js +0 -22
  248. package/dist/esm/graphql/field-resolver/union-value-resolver.js.map +0 -1
  249. package/dist/esm/graphql/input-type-generator.service.js +0 -94
  250. package/dist/esm/graphql/input-type-generator.service.js.map +0 -1
  251. package/dist/esm/graphql/queries-mutations-generator.service.js +0 -85
  252. package/dist/esm/graphql/queries-mutations-generator.service.js.map +0 -1
  253. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -78
  254. package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
  255. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -58
  256. package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
  257. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -67
  258. package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
  259. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -55
  260. package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
  261. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js +0 -15
  262. package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
  263. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js +0 -13
  264. package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
  265. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js +0 -14
  266. package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
  267. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js +0 -12
  268. package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
  269. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js +0 -22
  270. package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
  271. package/dist/esm/graphql/schema-analyzer.service.js +0 -36
  272. package/dist/esm/graphql/schema-analyzer.service.js.map +0 -1
  273. package/dist/esm/graphql/schema-generator.service.js +0 -103
  274. package/dist/esm/graphql/schema-generator.service.js.map +0 -1
  275. package/dist/esm/graphql/schema-root-type-generator.service.js +0 -35
  276. package/dist/esm/graphql/schema-root-type-generator.service.js.map +0 -1
  277. package/dist/esm/persistence/persistence.service.js +0 -45
  278. package/dist/esm/persistence/persistence.service.js.map +0 -1
  279. package/dist/types/app/api.service.d.ts +0 -34
  280. package/dist/types/app/api.service.d.ts.map +0 -1
  281. package/dist/types/container.d.ts +0 -3
  282. package/dist/types/container.d.ts.map +0 -1
  283. package/dist/types/graphql/apollo-config-factory.service.d.ts +0 -9
  284. package/dist/types/graphql/apollo-config-factory.service.d.ts.map +0 -1
  285. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts +0 -11
  286. package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts.map +0 -1
  287. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts +0 -15
  288. package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts.map +0 -1
  289. package/dist/types/graphql/field-resolver/fieldResolver.d.ts +0 -11
  290. package/dist/types/graphql/field-resolver/fieldResolver.d.ts.map +0 -1
  291. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts +0 -11
  292. package/dist/types/graphql/field-resolver/union-value-resolver.d.ts.map +0 -1
  293. package/dist/types/graphql/input-type-generator.service.d.ts +0 -12
  294. package/dist/types/graphql/input-type-generator.service.d.ts.map +0 -1
  295. package/dist/types/graphql/queries-mutations-generator.service.d.ts +0 -39
  296. package/dist/types/graphql/queries-mutations-generator.service.d.ts.map +0 -1
  297. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +0 -12
  298. package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts.map +0 -1
  299. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +0 -12
  300. package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts.map +0 -1
  301. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts +0 -13
  302. package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts.map +0 -1
  303. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +0 -13
  304. package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts.map +0 -1
  305. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts +0 -10
  306. package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts.map +0 -1
  307. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts +0 -10
  308. package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts.map +0 -1
  309. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts +0 -10
  310. package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts.map +0 -1
  311. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts +0 -9
  312. package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts.map +0 -1
  313. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts +0 -11
  314. package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts.map +0 -1
  315. package/dist/types/graphql/schema-analyzer.service.d.ts.map +0 -1
  316. package/dist/types/graphql/schema-generator.service.d.ts +0 -21
  317. package/dist/types/graphql/schema-generator.service.d.ts.map +0 -1
  318. package/dist/types/graphql/schema-root-type-generator.service.d.ts +0 -5
  319. package/dist/types/graphql/schema-root-type-generator.service.d.ts.map +0 -1
  320. package/dist/types/persistence/persistence.service.d.ts +0 -8
  321. package/dist/types/persistence/persistence.service.d.ts.map +0 -1
  322. package/src/app/api.service.ts +0 -121
  323. package/src/container.ts +0 -106
  324. package/src/graphql/apollo-config-factory.service.ts +0 -21
  325. package/src/graphql/field-resolver/entry-reference-resolver.ts +0 -47
  326. package/src/graphql/field-resolver/field-default-value-resolver.ts +0 -152
  327. package/src/graphql/field-resolver/union-value-resolver.ts +0 -46
  328. package/src/graphql/input-type-generator.service.ts +0 -127
  329. package/src/graphql/queries-mutations-generator.service.ts +0 -154
  330. package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +0 -120
  331. package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +0 -96
  332. package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +0 -127
  333. package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +0 -117
  334. package/src/graphql/resolver-generators/query-all-resolver-generator.ts +0 -29
  335. package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +0 -23
  336. package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +0 -29
  337. package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +0 -27
  338. package/src/graphql/resolver-generators/union-type-resolver-generator.ts +0 -38
  339. package/src/graphql/schema-analyzer.service.ts +0 -57
  340. package/src/graphql/schema-generator.service.ts +0 -178
  341. package/src/graphql/schema-root-type-generator.service.ts +0 -44
  342. package/src/persistence/persistence.service.ts +0 -74
@@ -0,0 +1,85 @@
1
+ import { findById, findByTypeId } from '../../../persistence/persistence'
2
+ import { Entry, EntryData, EntryDraft } from '@commitspark/git-adapter'
3
+ import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
4
+ import { GraphQLFieldResolver, isObjectType } from 'graphql'
5
+ import { QueryMutationResolverContext } from '../types'
6
+ import { createError, ErrorCode } from '../../errors'
7
+
8
+ export const mutationDeleteResolver: GraphQLFieldResolver<
9
+ any,
10
+ QueryMutationResolverContext,
11
+ any,
12
+ Promise<EntryData>
13
+ > = async (source, args, context, info) => {
14
+ const entry: Entry = await findByTypeId(
15
+ context.gitAdapter,
16
+ context.getCurrentRef(),
17
+ context.type.name,
18
+ args.id,
19
+ )
20
+
21
+ if (entry.metadata.referencedBy && entry.metadata.referencedBy.length > 0) {
22
+ const otherIds = entry.metadata.referencedBy
23
+ .map((referenceId) => `"${referenceId}"`)
24
+ .join(', ')
25
+ throw createError(
26
+ `Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`,
27
+ ErrorCode.IN_USE,
28
+ {
29
+ argumentName: 'id',
30
+ argumentValue: args.id,
31
+ },
32
+ )
33
+ }
34
+
35
+ const entryType = info.schema.getType(context.type.name)
36
+ if (!isObjectType(entryType)) {
37
+ throw createError(
38
+ `Type "${context.type.name}" is not an ObjectType.`,
39
+ ErrorCode.INTERNAL_ERROR,
40
+ {},
41
+ )
42
+ }
43
+
44
+ const referencedEntryIds = await getReferencedEntryIds(
45
+ entryType,
46
+ context,
47
+ null,
48
+ entryType,
49
+ entry.data,
50
+ )
51
+ const referencedEntryUpdates: EntryDraft[] = []
52
+ for (const referencedEntryId of referencedEntryIds) {
53
+ const noLongerReferencedEntry = await findById(
54
+ context.gitAdapter,
55
+ context.getCurrentRef(),
56
+ referencedEntryId,
57
+ )
58
+ referencedEntryUpdates.push({
59
+ ...noLongerReferencedEntry,
60
+ metadata: {
61
+ ...noLongerReferencedEntry.metadata,
62
+ referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
63
+ (entryId) => entryId !== args.id,
64
+ ),
65
+ },
66
+ deletion: false,
67
+ })
68
+ }
69
+
70
+ const commit = await context.gitAdapter.createCommit({
71
+ ref: context.branch,
72
+ parentSha: context.getCurrentRef(),
73
+ entries: [
74
+ {
75
+ ...entry,
76
+ deletion: true,
77
+ },
78
+ ...referencedEntryUpdates,
79
+ ],
80
+ message: args.commitMessage,
81
+ })
82
+ context.setCurrentRef(commit.ref)
83
+
84
+ return args.id
85
+ }
@@ -0,0 +1,119 @@
1
+ import { findById, findByTypeId } from '../../../persistence/persistence'
2
+ import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
3
+ import { GraphQLFieldResolver, isObjectType } from 'graphql'
4
+ import { EntryData, EntryDraft } from '@commitspark/git-adapter'
5
+ import { QueryMutationResolverContext } from '../types'
6
+ import { createError, ErrorCode } from '../../errors'
7
+
8
+ function mergeData(
9
+ existingEntryData: EntryData,
10
+ updateData: EntryData,
11
+ ): EntryData {
12
+ return {
13
+ ...existingEntryData,
14
+ ...updateData,
15
+ }
16
+ }
17
+
18
+ export const mutationUpdateResolver: GraphQLFieldResolver<
19
+ any,
20
+ QueryMutationResolverContext,
21
+ any,
22
+ Promise<EntryData>
23
+ > = async (source, args, context, info) => {
24
+ if (!isObjectType(context.type)) {
25
+ throw createError(
26
+ `Type "${context.type.name}" cannot be mutated as is not an ObjectType.`,
27
+ ErrorCode.INTERNAL_ERROR,
28
+ {},
29
+ )
30
+ }
31
+
32
+ const existingEntry = await findByTypeId(
33
+ context.gitAdapter,
34
+ context.getCurrentRef(),
35
+ context.type.name,
36
+ args.id,
37
+ )
38
+
39
+ const existingReferencedEntryIds = await getReferencedEntryIds(
40
+ context.type,
41
+ context,
42
+ null,
43
+ info.returnType,
44
+ existingEntry.data,
45
+ )
46
+
47
+ const mergedData = mergeData(existingEntry.data ?? null, args.data)
48
+ const updatedReferencedEntryIds = await getReferencedEntryIds(
49
+ context.type,
50
+ context,
51
+ null,
52
+ info.returnType,
53
+ mergedData,
54
+ )
55
+
56
+ const noLongerReferencedIds = existingReferencedEntryIds.filter(
57
+ (entryId) => !updatedReferencedEntryIds.includes(entryId),
58
+ )
59
+ const newlyReferencedIds = updatedReferencedEntryIds.filter(
60
+ (entryId) => !existingReferencedEntryIds.includes(entryId),
61
+ )
62
+
63
+ const referencedEntryUpdates: EntryDraft[] = []
64
+ for (const noLongerReferencedEntryId of noLongerReferencedIds) {
65
+ const noLongerReferencedEntry = await findById(
66
+ context.gitAdapter,
67
+ context.getCurrentRef(),
68
+ noLongerReferencedEntryId,
69
+ )
70
+ referencedEntryUpdates.push({
71
+ ...noLongerReferencedEntry,
72
+ metadata: {
73
+ ...noLongerReferencedEntry.metadata,
74
+ referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
75
+ (entryId) => entryId !== args.id,
76
+ ),
77
+ },
78
+ deletion: false,
79
+ })
80
+ }
81
+ for (const newlyReferencedEntryId of newlyReferencedIds) {
82
+ const newlyReferencedEntry = await findById(
83
+ context.gitAdapter,
84
+ context.getCurrentRef(),
85
+ newlyReferencedEntryId,
86
+ )
87
+ const updatedReferenceList: string[] =
88
+ newlyReferencedEntry.metadata.referencedBy ?? []
89
+ updatedReferenceList.push(args.id)
90
+ updatedReferenceList.sort()
91
+ referencedEntryUpdates.push({
92
+ ...newlyReferencedEntry,
93
+ metadata: {
94
+ ...newlyReferencedEntry.metadata,
95
+ referencedBy: updatedReferenceList,
96
+ },
97
+ deletion: false,
98
+ })
99
+ }
100
+
101
+ const commit = await context.gitAdapter.createCommit({
102
+ ref: context.branch,
103
+ parentSha: context.getCurrentRef(),
104
+ entries: [
105
+ { ...existingEntry, data: mergedData, deletion: false },
106
+ ...referencedEntryUpdates,
107
+ ],
108
+ message: args.commitMessage,
109
+ })
110
+ context.setCurrentRef(commit.ref)
111
+
112
+ const updatedEntry = await findByTypeId(
113
+ context.gitAdapter,
114
+ context.getCurrentRef(),
115
+ context.type.name,
116
+ args.id,
117
+ )
118
+ return { ...updatedEntry.data, id: updatedEntry.id }
119
+ }
@@ -0,0 +1,20 @@
1
+ import { EntryData } from '@commitspark/git-adapter'
2
+ import { findByTypeId } from '../../../persistence/persistence'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+ import { QueryMutationResolverContext } from '../types'
5
+
6
+ export const queryByIdResolver: GraphQLFieldResolver<
7
+ any,
8
+ QueryMutationResolverContext,
9
+ any,
10
+ Promise<EntryData>
11
+ > = async (obj, args, context, info) => {
12
+ const entry = await findByTypeId(
13
+ context.gitAdapter,
14
+ context.getCurrentRef(),
15
+ context.type.name,
16
+ args.id,
17
+ )
18
+
19
+ return { ...entry.data, id: entry.id }
20
+ }
@@ -0,0 +1,21 @@
1
+ import { EntryData } from '@commitspark/git-adapter'
2
+ import { findByType } from '../../../persistence/persistence'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+ import { QueryMutationResolverContext } from '../types'
5
+
6
+ export const queryEveryResolver: GraphQLFieldResolver<
7
+ any,
8
+ QueryMutationResolverContext,
9
+ any,
10
+ Promise<EntryData[]>
11
+ > = async (obj, args, context, info) => {
12
+ const entries = await findByType(
13
+ context.gitAdapter,
14
+ context.getCurrentRef(),
15
+ context.type.name,
16
+ )
17
+
18
+ return entries.map((entry) => {
19
+ return { ...entry.data, id: entry.id }
20
+ })
21
+ }
@@ -0,0 +1,12 @@
1
+ import { getTypeById } from '../../../persistence/persistence'
2
+ import { GraphQLFieldResolver } from 'graphql'
3
+ import { ApolloContext } from '../../../client'
4
+
5
+ export const queryTypeByIdResolver: GraphQLFieldResolver<
6
+ any,
7
+ ApolloContext,
8
+ any,
9
+ Promise<string>
10
+ > = async (source, args, context, info) => {
11
+ return getTypeById(context.gitAdapter, context.getCurrentRef(), args.id)
12
+ }
@@ -0,0 +1,19 @@
1
+ import { ApolloContext } from '../../../client'
2
+ import { getTypeById } from '../../../persistence/persistence'
3
+ import { GraphQLTypeResolver } from 'graphql'
4
+ import { buildsOnTypeWithEntryDirective } from '../../schema-utils/entry-type-util'
5
+
6
+ export const unionTypeResolver: GraphQLTypeResolver<
7
+ any,
8
+ ApolloContext
9
+ > = async (obj, context, info, abstractType) => {
10
+ if (buildsOnTypeWithEntryDirective(abstractType)) {
11
+ return getTypeById(context.gitAdapter, context.getCurrentRef(), obj.id)
12
+ } else {
13
+ // We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
14
+ // in UnionValueResolver. This artificial field holds the type information we need here.
15
+ return obj.__typename
16
+ }
17
+
18
+ // TODO same for interface type: https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolving-unions-and-interfaces
19
+ }
@@ -0,0 +1,14 @@
1
+ import { ApolloContext } from '../../client'
2
+ import { GraphQLNamedType } from 'graphql/type'
3
+ import { GraphQLFieldResolver } from 'graphql'
4
+
5
+ export interface QueryMutationResolverContext extends ApolloContext {
6
+ type: GraphQLNamedType
7
+ }
8
+
9
+ export type QueryMutationResolver<ResultType> = GraphQLFieldResolver<
10
+ any,
11
+ ApolloContext,
12
+ any,
13
+ Promise<ResultType>
14
+ >
@@ -0,0 +1,55 @@
1
+ import {
2
+ GraphQLInterfaceType,
3
+ GraphQLObjectType,
4
+ GraphQLSchema,
5
+ GraphQLUnionType,
6
+ isInterfaceType,
7
+ isObjectType,
8
+ isUnionType,
9
+ } from 'graphql'
10
+ import { getDirective } from '@graphql-tools/utils'
11
+
12
+ export function analyzeSchema(schema: GraphQLSchema): SchemaAnalyzerResult {
13
+ const result: SchemaAnalyzerResult = {
14
+ entryDirectiveTypes: [],
15
+ objectTypes: [],
16
+ interfaceTypes: [],
17
+ unionTypes: [],
18
+ }
19
+
20
+ const typeMap = schema.getTypeMap()
21
+
22
+ for (const [key, type] of Object.entries(typeMap)) {
23
+ if (key.startsWith('__')) {
24
+ continue
25
+ }
26
+
27
+ if (isObjectType(type)) {
28
+ const objectType = type as GraphQLObjectType
29
+ result.objectTypes.push(objectType)
30
+ const entityDirective = getDirective(schema, objectType, 'Entry')?.[0]
31
+ if (entityDirective) {
32
+ result.entryDirectiveTypes.push(objectType)
33
+ }
34
+ }
35
+
36
+ if (isInterfaceType(type)) {
37
+ const interfaceType = type as GraphQLInterfaceType
38
+ result.interfaceTypes.push(interfaceType)
39
+ }
40
+
41
+ if (isUnionType(type)) {
42
+ const unionType = type as GraphQLUnionType
43
+ result.unionTypes.push(unionType)
44
+ }
45
+ }
46
+
47
+ return result
48
+ }
49
+
50
+ export interface SchemaAnalyzerResult {
51
+ entryDirectiveTypes: GraphQLObjectType[]
52
+ objectTypes: GraphQLObjectType[]
53
+ interfaceTypes: GraphQLInterfaceType[]
54
+ unionTypes: GraphQLUnionType[]
55
+ }
@@ -0,0 +1,166 @@
1
+ import {
2
+ generateQueriesAndMutations,
3
+ generateTypeNameQuery,
4
+ } from './queries-mutations-generator'
5
+ import {
6
+ IExecutableSchemaDefinition,
7
+ makeExecutableSchema,
8
+ } from '@graphql-tools/schema'
9
+ import { analyzeSchema } from './schema-analyzer'
10
+ import {
11
+ generateIdInputTypeStrings,
12
+ generateObjectInputTypeStrings,
13
+ generateUnionInputTypeStrings,
14
+ } from './input-type-generator'
15
+ import { generateSchemaRootTypeStrings } from './schema-root-type-generator'
16
+ import { printSchemaWithDirectives } from '@graphql-tools/utils'
17
+ import { unionTypeResolver } from './resolvers/query-mutation-resolvers/union-type-resolver'
18
+ import { ApolloContext } from '../client'
19
+ import { GraphQLFieldResolver, GraphQLTypeResolver } from 'graphql'
20
+ import { getValidationResult } from './schema-validator'
21
+ import { EntryData } from '@commitspark/git-adapter'
22
+ import { createObjectTypeFieldResolvers } from './resolvers/object-type-field-default-value-resolver-generator'
23
+ import { createError, ErrorCode } from './errors'
24
+
25
+ export async function generateSchema(
26
+ context: ApolloContext,
27
+ ): Promise<IExecutableSchemaDefinition> {
28
+ const originalSchemaString = await context.gitAdapter.getSchema(
29
+ context.getCurrentRef(),
30
+ )
31
+ const schema = makeExecutableSchema({
32
+ typeDefs: originalSchemaString,
33
+ })
34
+
35
+ const validationResult = getValidationResult(schema)
36
+ if (validationResult.length > 0) {
37
+ throw createError(`Invalid schema.`, ErrorCode.BAD_SCHEMA, {
38
+ schema: printSchemaWithDirectives(schema),
39
+ argumentValue: validationResult.join('\n'),
40
+ })
41
+ }
42
+ const schemaAnalyzerResult = analyzeSchema(schema)
43
+
44
+ const filteredOriginalSchemaString = printSchemaWithDirectives(schema) + '\n'
45
+
46
+ const generatedIdInputTypeStrings =
47
+ generateIdInputTypeStrings(schemaAnalyzerResult)
48
+
49
+ const generatedQueriesMutations = generateQueriesAndMutations(
50
+ schemaAnalyzerResult.entryDirectiveTypes,
51
+ )
52
+ const generatedTypeNameQuery = generateTypeNameQuery()
53
+
54
+ const generatedEntryReferenceResolvers: Record<
55
+ string,
56
+ Record<
57
+ string,
58
+ GraphQLFieldResolver<
59
+ Record<string, any>,
60
+ ApolloContext,
61
+ any,
62
+ Promise<EntryData | EntryData[] | null>
63
+ >
64
+ >
65
+ > = {}
66
+
67
+ const generatedObjectInputTypeStrings = generateObjectInputTypeStrings(
68
+ schemaAnalyzerResult.objectTypes,
69
+ )
70
+
71
+ const generatedUnionInputTypeStrings = generateUnionInputTypeStrings(
72
+ schemaAnalyzerResult.unionTypes,
73
+ )
74
+
75
+ const generatedSchemaRootTypeStrings = generateSchemaRootTypeStrings(
76
+ generatedQueriesMutations,
77
+ generatedTypeNameQuery,
78
+ )
79
+
80
+ const generatedSchemaString = `schema {
81
+ query: Query
82
+ mutation: Mutation
83
+ }
84
+
85
+ ${generatedSchemaRootTypeStrings}`
86
+
87
+ const generatedUnionTypeResolvers: Record<string, UnionTypeResolver> = {}
88
+ for (const unionType of schemaAnalyzerResult.unionTypes) {
89
+ generatedUnionTypeResolvers[unionType.name] = {
90
+ __resolveType: unionTypeResolver,
91
+ }
92
+ }
93
+ const generatedObjectTypeFieldResolvers =
94
+ createObjectTypeFieldResolvers(schema)
95
+
96
+ const generatedQueryResolvers: Record<
97
+ string,
98
+ GraphQLFieldResolver<any, ApolloContext>
99
+ > = {}
100
+ const generatedMutationResolvers: Record<
101
+ string,
102
+ GraphQLFieldResolver<any, ApolloContext>
103
+ > = {}
104
+
105
+ for (const element of generatedQueriesMutations) {
106
+ generatedQueryResolvers[element.queryEvery.name] =
107
+ element.queryEvery.resolver
108
+ generatedQueryResolvers[element.queryById.name] = element.queryById.resolver
109
+ generatedMutationResolvers[element.createMutation.name] =
110
+ element.createMutation.resolver
111
+ generatedMutationResolvers[element.updateMutation.name] =
112
+ element.updateMutation.resolver
113
+ generatedMutationResolvers[element.deleteMutation.name] =
114
+ element.deleteMutation.resolver
115
+ }
116
+ generatedQueryResolvers[generatedTypeNameQuery.name] =
117
+ generatedTypeNameQuery.resolver
118
+
119
+ const allGeneratedResolvers: Record<
120
+ string,
121
+ Record<
122
+ string,
123
+ | GraphQLFieldResolver<any, ApolloContext>
124
+ | GraphQLTypeResolver<any, ApolloContext>
125
+ >
126
+ > = {
127
+ Query: generatedQueryResolvers,
128
+ Mutation: generatedMutationResolvers,
129
+ }
130
+
131
+ for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
132
+ allGeneratedResolvers[typeName] = {
133
+ ...(allGeneratedResolvers[typeName] ?? {}),
134
+ ...generatedUnionTypeResolvers[typeName],
135
+ }
136
+ }
137
+ for (const typeName of Object.keys(generatedObjectTypeFieldResolvers)) {
138
+ allGeneratedResolvers[typeName] = {
139
+ ...(allGeneratedResolvers[typeName] ?? {}),
140
+ ...generatedObjectTypeFieldResolvers[typeName],
141
+ }
142
+ }
143
+ for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
144
+ allGeneratedResolvers[typeName] = {
145
+ ...(allGeneratedResolvers[typeName] ?? {}),
146
+ ...generatedEntryReferenceResolvers[typeName],
147
+ }
148
+ }
149
+
150
+ const typeDefs = [
151
+ filteredOriginalSchemaString,
152
+ generatedSchemaString,
153
+ generatedIdInputTypeStrings.join('\n'),
154
+ generatedObjectInputTypeStrings.join('\n'),
155
+ generatedUnionInputTypeStrings.join('\n'),
156
+ ].filter((typeDef) => typeDef.length > 0)
157
+
158
+ return {
159
+ typeDefs: typeDefs,
160
+ resolvers: allGeneratedResolvers,
161
+ }
162
+ }
163
+
164
+ interface UnionTypeResolver {
165
+ __resolveType: GraphQLTypeResolver<any, ApolloContext>
166
+ }
@@ -0,0 +1,35 @@
1
+ import { GeneratedQuery, GeneratedSchema } from './queries-mutations-generator'
2
+
3
+ export function generateSchemaRootTypeStrings(
4
+ generatedSchemas: GeneratedSchema[],
5
+ typeQuery: GeneratedQuery<Promise<string>>,
6
+ ): string {
7
+ return (
8
+ `type Query {\n` +
9
+ generatedSchemas
10
+ .map((generated) => ' ' + generated.queryEvery.schemaString)
11
+ .join('\n') +
12
+ '\n' +
13
+ generatedSchemas
14
+ .map((generated) => ' ' + generated.queryById.schemaString)
15
+ .join('\n') +
16
+ '\n' +
17
+ ` ${typeQuery.schemaString}` +
18
+ '\n' +
19
+ '}\n\n' +
20
+ 'type Mutation {\n' +
21
+ generatedSchemas
22
+ .map((generated) => ' ' + generated.createMutation.schemaString)
23
+ .join('\n') +
24
+ '\n' +
25
+ generatedSchemas
26
+ .map((generated) => ' ' + generated.updateMutation.schemaString)
27
+ .join('\n') +
28
+ '\n' +
29
+ generatedSchemas
30
+ .map((generated) => ' ' + generated.deleteMutation.schemaString)
31
+ .join('\n') +
32
+ '\n' +
33
+ '}\n'
34
+ )
35
+ }