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

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