@commitspark/graphql-api 0.81.2 → 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 +16 -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 +2 -2
  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
@@ -0,0 +1,18 @@
1
+ import { EntryData } from '@commitspark/git-adapter';
2
+ import { ApolloContext } from '../client';
3
+ import { GraphQLFieldResolver, GraphQLObjectType } from 'graphql';
4
+ export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
5
+ export declare function generateTypeNameQuery(): GeneratedQuery<Promise<string>>;
6
+ export interface GeneratedSchema {
7
+ queryAll: GeneratedQuery<Promise<EntryData[]>>;
8
+ queryById: GeneratedQuery<Promise<EntryData>>;
9
+ createMutation: GeneratedQuery<Promise<EntryData>>;
10
+ updateMutation: GeneratedQuery<Promise<EntryData>>;
11
+ deleteMutation: GeneratedQuery<Promise<EntryData>>;
12
+ }
13
+ export interface GeneratedQuery<T> {
14
+ name: string;
15
+ schemaString: string;
16
+ resolver: GraphQLFieldResolver<any, ApolloContext, any, T>;
17
+ }
18
+ //# sourceMappingURL=queries-mutations-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AASjE,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,CAiGnB;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CASvE;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC9C,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;CAC3D"}
@@ -0,0 +1,3 @@
1
+ import { FieldResolver } from './types';
2
+ export declare const resolveEntryReference: FieldResolver<any>;
3
+ //# sourceMappingURL=entry-reference-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry-reference-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,SAAS,CAAA;AAI7D,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAiBpD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { FieldResolver } from './types';
2
+ export declare const resolveFieldDefaultValue: FieldResolver<any>;
3
+ //# sourceMappingURL=field-default-value-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-default-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2C,MAAM,SAAS,CAAA;AAkBhF,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,GAAG,CAwFvD,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { GraphQLFieldResolver } from 'graphql/type/definition';
2
+ import { EntryData, GitAdapter } from '@commitspark/git-adapter';
3
+ import { GraphQLOutputType } from 'graphql';
4
+ export interface FieldResolverContext {
5
+ gitAdapter: GitAdapter;
6
+ getCurrentRef(): string;
7
+ currentType: GraphQLOutputType;
8
+ hasNonNullParent?: boolean;
9
+ }
10
+ export type FieldResolver<TSource, TContext = FieldResolverContext, TArgs = any, TResult = Promise<ResolvedEntryData<EntryData | EntryData[] | null>>> = GraphQLFieldResolver<TSource, TContext, TArgs, TResult>;
11
+ export type ResolvedEntryData<T> = T | Array<ResolvedEntryData<T>>;
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,IAAI,MAAM,CAAA;IACvB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,MAAM,aAAa,CACvB,OAAO,EACP,QAAQ,GAAG,oBAAoB,EAC/B,KAAK,GAAG,GAAG,EACX,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,IAClE,oBAAoB,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;AAE3D,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { FieldResolver } from './types';
2
+ export declare const resolveUnionValue: FieldResolver<any>;
3
+ //# sourceMappingURL=union-value-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/union-value-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAqB,MAAM,SAAS,CAAA;AAM1D,eAAO,MAAM,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAgBhD,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { GraphQLFieldResolver, GraphQLSchema } from 'graphql';
2
+ import { EntryData } from '@commitspark/git-adapter';
3
+ import { ResolvedEntryData } from './field-resolvers/types';
4
+ import { ApolloContext } from '../../client';
5
+ type FieldResolversRecord = Record<string, GraphQLFieldResolver<any, ApolloContext, any, Promise<ResolvedEntryData<EntryData | EntryData[] | null>>>>;
6
+ export declare function createObjectTypeFieldResolvers(schema: GraphQLSchema): Record<string, FieldResolversRecord>;
7
+ export {};
8
+ //# sourceMappingURL=object-type-field-default-value-resolver-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object-type-field-default-value-resolver-generator.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAGpB,aAAa,EAKd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AA4B5C,KAAK,oBAAoB,GAAG,MAAM,CAChC,MAAM,EACN,oBAAoB,CAClB,GAAG,EACH,aAAa,EACb,GAAG,EACH,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAC3D,CACF,CAAA;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,aAAa,GACpB,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAoCtC"}
@@ -0,0 +1,5 @@
1
+ import { GraphQLFieldResolver } from 'graphql';
2
+ import { EntryData } from '@commitspark/git-adapter';
3
+ import { QueryMutationResolverContext } from '../types';
4
+ export declare const mutationCreateResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData>>;
5
+ //# sourceMappingURL=mutation-create-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-create-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAE1E,OAAO,EAEL,SAAS,EAEV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CA6FnB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { EntryData } from '@commitspark/git-adapter';
2
+ import { GraphQLFieldResolver } from 'graphql';
3
+ import { QueryMutationResolverContext } from '../types';
4
+ export declare const mutationDeleteResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData>>;
5
+ //# sourceMappingURL=mutation-delete-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-delete-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAEvE,OAAO,EAAgB,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CAsEnB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { GraphQLFieldResolver } from 'graphql';
2
+ import { EntryData } from '@commitspark/git-adapter';
3
+ import { QueryMutationResolverContext } from '../types';
4
+ export declare const mutationUpdateResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData>>;
5
+ //# sourceMappingURL=mutation-update-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation-update-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAYvD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CA6FnB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { EntryData } from '@commitspark/git-adapter';
2
+ import { GraphQLFieldResolver } from 'graphql';
3
+ import { QueryMutationResolverContext } from '../types';
4
+ export declare const queryAllResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData[]>>;
5
+ //# sourceMappingURL=query-all-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-all-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-all-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,eAAO,MAAM,gBAAgB,EAAE,oBAAoB,CACjD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,EAAE,CAAC,CAWrB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { EntryData } from '@commitspark/git-adapter';
2
+ import { GraphQLFieldResolver } from 'graphql';
3
+ import { QueryMutationResolverContext } from '../types';
4
+ export declare const queryByIdResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData>>;
5
+ //# sourceMappingURL=query-by-id-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-by-id-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,eAAO,MAAM,iBAAiB,EAAE,oBAAoB,CAClD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CAUnB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { GraphQLFieldResolver } from 'graphql';
2
+ import { ApolloContext } from '../../../client';
3
+ export declare const queryTypeByIdResolver: GraphQLFieldResolver<any, ApolloContext, any, Promise<string>>;
4
+ //# sourceMappingURL=query-type-by-id-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-type-by-id-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,eAAO,MAAM,qBAAqB,EAAE,oBAAoB,CACtD,GAAG,EACH,aAAa,EACb,GAAG,EACH,OAAO,CAAC,MAAM,CAAC,CAGhB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { ApolloContext } from '../../../client';
2
+ import { GraphQLTypeResolver } from 'graphql';
3
+ export declare const unionTypeResolver: GraphQLTypeResolver<any, ApolloContext>;
4
+ //# sourceMappingURL=union-type-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"union-type-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAG7C,eAAO,MAAM,iBAAiB,EAAE,mBAAmB,CACjD,GAAG,EACH,aAAa,CAWd,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { ApolloContext } from '../../client';
2
+ import { GraphQLNamedType } from 'graphql/type';
3
+ import { GraphQLFieldResolver } from 'graphql';
4
+ export interface QueryMutationResolverContext extends ApolloContext {
5
+ type: GraphQLNamedType;
6
+ }
7
+ export type QueryMutationResolver<ResultType> = GraphQLFieldResolver<any, ApolloContext, any, Promise<ResultType>>;
8
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/graphql/resolvers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,4BAA6B,SAAQ,aAAa;IACjE,IAAI,EAAE,gBAAgB,CAAA;CACvB;AAED,MAAM,MAAM,qBAAqB,CAAC,UAAU,IAAI,oBAAoB,CAClE,GAAG,EACH,aAAa,EACb,GAAG,EACH,OAAO,CAAC,UAAU,CAAC,CACpB,CAAA"}
@@ -1,11 +1,9 @@
1
1
  import { GraphQLInterfaceType, GraphQLObjectType, GraphQLSchema, GraphQLUnionType } from 'graphql';
2
- export declare class SchemaAnalyzerService {
3
- analyzeSchema(schema: GraphQLSchema): ISchemaAnalyzerResult;
4
- }
5
- export interface ISchemaAnalyzerResult {
2
+ export declare function analyzeSchema(schema: GraphQLSchema): SchemaAnalyzerResult;
3
+ export interface SchemaAnalyzerResult {
6
4
  entryDirectiveTypes: GraphQLObjectType[];
7
5
  objectTypes: GraphQLObjectType[];
8
6
  interfaceTypes: GraphQLInterfaceType[];
9
7
  unionTypes: GraphQLUnionType[];
10
8
  }
11
- //# sourceMappingURL=schema-analyzer.service.d.ts.map
9
+ //# sourceMappingURL=schema-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-analyzer.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAIjB,MAAM,SAAS,CAAA;AAGhB,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,oBAAoB,CAoCzE;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,EAAE,iBAAiB,EAAE,CAAA;IACxC,WAAW,EAAE,iBAAiB,EAAE,CAAA;IAChC,cAAc,EAAE,oBAAoB,EAAE,CAAA;IACtC,UAAU,EAAE,gBAAgB,EAAE,CAAA;CAC/B"}
@@ -0,0 +1,4 @@
1
+ import { IExecutableSchemaDefinition } from '@graphql-tools/schema';
2
+ import { ApolloContext } from '../client';
3
+ export declare function generateSchema(context: ApolloContext): Promise<IExecutableSchemaDefinition>;
4
+ //# sourceMappingURL=schema-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAMzC,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAmItC"}
@@ -0,0 +1,3 @@
1
+ import { GeneratedQuery, GeneratedSchema } from './queries-mutations-generator';
2
+ export declare function generateSchemaRootTypeStrings(generatedSchemas: GeneratedSchema[], typeQuery: GeneratedQuery<Promise<string>>): string;
3
+ //# sourceMappingURL=schema-root-type-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-root-type-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/E,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,eAAe,EAAE,EACnC,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GACzC,MAAM,CA6BR"}
@@ -1,15 +1,4 @@
1
1
  import { GraphQLNullableType, GraphQLObjectType } from 'graphql';
2
- import { ApolloContext } from '../../app/api.service';
3
- import { PersistenceService } from '../../persistence/persistence.service';
4
- import { UnionTypeUtil } from './union-type-util';
5
- import { EntryTypeUtil } from './entry-type-util';
6
- export declare class EntryReferenceUtil {
7
- private readonly persistence;
8
- private readonly entryTypeUtil;
9
- private readonly unionTypeUtil;
10
- constructor(persistence: PersistenceService, entryTypeUtil: EntryTypeUtil, unionTypeUtil: UnionTypeUtil);
11
- getReferencedEntryIds(rootType: GraphQLObjectType, context: ApolloContext, fieldName: string | null, type: GraphQLNullableType, data: any): Promise<string[]>;
12
- private validateReference;
13
- private isPermittedReferenceType;
14
- }
2
+ import { ApolloContext } from '../../client';
3
+ export declare function getReferencedEntryIds(rootType: GraphQLObjectType, context: ApolloContext, fieldName: string | null, type: GraphQLNullableType, data: any): Promise<string[]>;
15
4
  //# sourceMappingURL=entry-reference-util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EAKlB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEjD,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,WAAW,EAAE,kBAAkB,EAC/B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa;IAGlC,qBAAqB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,MAAM,EAAE,CAAC;YAiFN,iBAAiB;IAgE/B,OAAO,CAAC,wBAAwB;CAkBjC"}
1
+ {"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,iBAAiB,EAKlB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAsF5C,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,MAAM,EAAE,CAAC,CA2EnB"}
@@ -1,7 +1,5 @@
1
1
  import { GraphQLNullableType, GraphQLObjectType, GraphQLUnionType } from 'graphql';
2
- export declare class EntryTypeUtil {
3
- buildsOnTypeWithEntryDirective(type: GraphQLNullableType): boolean;
4
- hasEntryDirective(type: GraphQLObjectType): boolean;
5
- isUnionOfEntryTypes(type: GraphQLUnionType): boolean;
6
- }
2
+ export declare function hasEntryDirective(type: GraphQLObjectType): boolean;
3
+ export declare function isUnionOfEntryTypes(type: GraphQLUnionType): boolean;
4
+ export declare function buildsOnTypeWithEntryDirective(type: GraphQLNullableType): boolean;
7
5
  //# sourceMappingURL=entry-type-util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"entry-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAEhB,qBAAa,aAAa;IACjB,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAalE,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO;IASnD,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;CAQ5D"}
1
+ {"version":3,"file":"entry-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAEhB,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAOlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAInE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAWT"}
@@ -1,6 +1,4 @@
1
1
  import { EntryData } from '@commitspark/git-adapter';
2
- export declare class UnionTypeUtil {
3
- getUnionTypeNameFromFieldValue(fieldValue: any): string;
4
- getUnionValue(fieldValue: any): EntryData;
5
- }
2
+ export declare function getUnionTypeNameFromFieldValue(fieldValue: any): string;
3
+ export declare function getUnionValue(fieldValue: any): EntryData;
6
4
  //# sourceMappingURL=union-type-util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"union-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,qBAAa,aAAa;IACjB,8BAA8B,CAAC,UAAU,EAAE,GAAG,GAAG,MAAM;IAUvD,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS;CAQjD"}
1
+ {"version":3,"file":"union-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,GAAG,GAAG,MAAM,CAQtE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,GAAG,GAAG,SAAS,CAOxD"}
@@ -1,6 +1,3 @@
1
1
  import { GraphQLSchema } from 'graphql';
2
- export declare class SchemaValidator {
3
- getValidationResult(schema: GraphQLSchema): string[];
4
- private checkUnionMembersConsistentUseOfEntryDirective;
5
- }
2
+ export declare function getValidationResult(schema: GraphQLSchema): string[];
6
3
  //# sourceMappingURL=schema-validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,SAAS,CAAA;AAE/D,qBAAa,eAAe;IACnB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE;IAM3D,OAAO,CAAC,8CAA8C;CA6BvD"}
1
+ {"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,SAAS,CAAA;AAgC/D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAInE"}
@@ -1,4 +1,9 @@
1
- import { ApiService, GraphQLResponse, SchemaResponse } from './app/api.service';
2
- export { ApiService, GraphQLResponse, SchemaResponse };
3
- export declare function getApiService(): Promise<ApiService>;
1
+ import { ApolloExecuteOperationRequest, GraphQLResponse, SchemaResponse, VariableValues } from './client';
2
+ import { GitAdapter } from '@commitspark/git-adapter';
3
+ interface Client {
4
+ postGraphQL<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>): Promise<GraphQLResponse<TData | null>>;
5
+ getSchema(ref: string): Promise<SchemaResponse>;
6
+ }
7
+ export { Client, GraphQLResponse, SchemaResponse };
8
+ export declare function createClient(gitAdapter: GitAdapter): Promise<Client>;
4
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAG/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,CAAA;AAEtD,wBAAsB,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC,CAEzD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,eAAe,EAEf,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAErD,UAAU,MAAM;IACd,WAAW,CACT,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChD;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,CAAA;AAElD,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
@@ -0,0 +1,6 @@
1
+ import { Entry, GitAdapter } from '@commitspark/git-adapter';
2
+ export declare function getTypeById(gitAdapter: GitAdapter, commitHash: string, id: string): Promise<string>;
3
+ export declare function findById(gitAdapter: GitAdapter, commitHash: string, id: string): Promise<Entry>;
4
+ export declare function findByType(gitAdapter: GitAdapter, commitHash: string, type: string): Promise<Entry[]>;
5
+ export declare function findByTypeId(gitAdapter: GitAdapter, commitHash: string, type: string, id: string): Promise<Entry>;
6
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG5D,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAYhB;AAED,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,EAAE,CAAC,CAGlB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAkBhB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@commitspark/graphql-api",
3
3
  "description": "GraphQL API for Commitspark",
4
- "version": "0.81.2",
4
+ "version": "1.0.0-beta.1",
5
5
  "license": "ISC",
6
6
  "private": false,
7
7
  "files": [
@@ -34,7 +34,7 @@
34
34
  "prepublishOnly": "npm run build"
35
35
  },
36
36
  "dependencies": {
37
- "@apollo/server": "^4.0.0",
37
+ "@apollo/server": "^5.0.0",
38
38
  "@commitspark/git-adapter": "^0.13.0",
39
39
  "@graphql-tools/schema": "^9.0.0",
40
40
  "@graphql-tools/utils": "^9.0.0"
package/src/client.ts ADDED
@@ -0,0 +1,114 @@
1
+ import { createApolloConfig } from './graphql/apollo-config-factory'
2
+ import { generateSchema } from './graphql/schema-generator'
3
+ import {
4
+ DocumentNode,
5
+ GraphQLFormattedError,
6
+ TypedQueryDocumentNode,
7
+ } from 'graphql'
8
+ import { GitAdapter } from '@commitspark/git-adapter'
9
+ import {
10
+ ApolloServer,
11
+ ApolloServerOptions,
12
+ GraphQLRequest,
13
+ } from '@apollo/server'
14
+
15
+ export type VariableValues = { [name: string]: unknown }
16
+
17
+ export type ApolloExecuteOperationRequest<
18
+ TData = Record<string, unknown>,
19
+ TVariables extends VariableValues = VariableValues,
20
+ > = Omit<GraphQLRequest<TVariables>, 'query'> & {
21
+ query?: string | DocumentNode | TypedQueryDocumentNode<TData, TVariables>
22
+ }
23
+
24
+ export const postGraphQL = async <
25
+ TData = Record<string, unknown>,
26
+ TVariables extends VariableValues = VariableValues,
27
+ >(
28
+ gitAdapter: GitAdapter,
29
+ ref: string,
30
+ request: ApolloExecuteOperationRequest<TData, TVariables>,
31
+ ): Promise<GraphQLResponse<TData | null>> => {
32
+ let currentRef = await gitAdapter.getLatestCommitHash(ref)
33
+ const context: ApolloContext = {
34
+ branch: ref,
35
+ gitAdapter: gitAdapter,
36
+ getCurrentRef(): string {
37
+ return currentRef
38
+ },
39
+ setCurrentRef(refArg: string) {
40
+ currentRef = refArg
41
+ },
42
+ }
43
+
44
+ const apolloDriverConfig: ApolloServerOptions<ApolloContext> =
45
+ await createApolloConfig(context)
46
+
47
+ const apolloServer = new ApolloServer<ApolloContext>({
48
+ ...apolloDriverConfig,
49
+ })
50
+
51
+ const result = await apolloServer.executeOperation<TData, TVariables>(
52
+ request,
53
+ {
54
+ contextValue: context,
55
+ },
56
+ )
57
+
58
+ await apolloServer.stop()
59
+
60
+ return {
61
+ ref: context.getCurrentRef(),
62
+ data:
63
+ result.body.kind === 'single' ? result.body.singleResult.data : undefined,
64
+ errors:
65
+ result.body.kind === 'single'
66
+ ? result.body.singleResult.errors
67
+ : undefined,
68
+ }
69
+ }
70
+
71
+ export const getSchema = async (
72
+ gitAdapter: GitAdapter,
73
+ ref: string,
74
+ ): Promise<SchemaResponse> => {
75
+ let currentRef = await gitAdapter.getLatestCommitHash(ref)
76
+ const context: ApolloContext = {
77
+ branch: ref,
78
+ gitAdapter: gitAdapter,
79
+ getCurrentRef(): string {
80
+ return currentRef
81
+ },
82
+ setCurrentRef(refArg: string) {
83
+ currentRef = refArg
84
+ },
85
+ }
86
+
87
+ const typeDefinitionStrings = (await generateSchema(context)).typeDefs
88
+ if (!Array.isArray(typeDefinitionStrings)) {
89
+ throw new Error('Unknown element')
90
+ }
91
+
92
+ return {
93
+ ref: context.getCurrentRef(),
94
+ data: typeDefinitionStrings.join('\n'),
95
+ }
96
+ }
97
+
98
+ export interface ApolloContext {
99
+ branch: string
100
+ gitAdapter: GitAdapter
101
+ getCurrentRef(): string
102
+ setCurrentRef(sha: string): void
103
+ }
104
+
105
+ export interface GraphQLResponse<TData> {
106
+ ref: string
107
+ data?: TData
108
+ errors: ReadonlyArray<GraphQLFormattedError> | undefined
109
+ }
110
+
111
+ export interface SchemaResponse {
112
+ ref: string
113
+ data: string
114
+ }
@@ -0,0 +1,17 @@
1
+ import { makeExecutableSchema } from '@graphql-tools/schema'
2
+ import { generateSchema } from './schema-generator'
3
+ import { ApolloContext } from '../client'
4
+ import { ApolloServerOptions } from '@apollo/server'
5
+ import { ApolloServerPluginUsageReportingDisabled } from '@apollo/server/plugin/disabled'
6
+
7
+ export async function createApolloConfig(
8
+ context: ApolloContext,
9
+ ): Promise<ApolloServerOptions<ApolloContext>> {
10
+ const schemaDefinition = await generateSchema(context)
11
+ const schema = makeExecutableSchema(schemaDefinition)
12
+
13
+ return {
14
+ schema: schema,
15
+ plugins: [ApolloServerPluginUsageReportingDisabled()],
16
+ } as ApolloServerOptions<ApolloContext>
17
+ }
@@ -0,0 +1,126 @@
1
+ import {
2
+ GraphQLEnumType,
3
+ GraphQLInputObjectType,
4
+ GraphQLInterfaceType,
5
+ GraphQLNullableType,
6
+ GraphQLObjectType,
7
+ GraphQLScalarType,
8
+ GraphQLUnionType,
9
+ isInterfaceType,
10
+ isListType,
11
+ isNonNullType,
12
+ isObjectType,
13
+ isScalarType,
14
+ isUnionType,
15
+ } from 'graphql'
16
+ import { SchemaAnalyzerResult } from './schema-analyzer'
17
+ import {
18
+ buildsOnTypeWithEntryDirective,
19
+ hasEntryDirective,
20
+ } from './schema-utils/entry-type-util'
21
+
22
+ function generateFieldInputTypeString(type: GraphQLNullableType): string {
23
+ if (isListType(type)) {
24
+ return `[${generateFieldInputTypeString(type.ofType)}]`
25
+ } else if (isNonNullType(type)) {
26
+ return `${generateFieldInputTypeString(type.ofType)}!`
27
+ } else if (isObjectType(type)) {
28
+ if (hasEntryDirective(type)) {
29
+ return `${type.name}IdInput`
30
+ } else {
31
+ return `${type.name}Input`
32
+ }
33
+ } else if (isInterfaceType(type)) {
34
+ // TODO
35
+ return ''
36
+ } else if (isUnionType(type)) {
37
+ if (buildsOnTypeWithEntryDirective(type)) {
38
+ return `${type.name}IdInput`
39
+ } else {
40
+ return `${type.name}Input`
41
+ }
42
+ } else {
43
+ return (
44
+ type as GraphQLScalarType | GraphQLEnumType | GraphQLInputObjectType
45
+ ).name
46
+ }
47
+ }
48
+
49
+ export function generateIdInputTypeStrings(
50
+ schemaAnalyzerResult: SchemaAnalyzerResult,
51
+ ): string[] {
52
+ let typesWithIdField: (
53
+ | GraphQLObjectType
54
+ | GraphQLInterfaceType
55
+ | GraphQLUnionType
56
+ )[] = []
57
+ typesWithIdField = typesWithIdField.concat(
58
+ schemaAnalyzerResult.entryDirectiveTypes,
59
+ )
60
+ typesWithIdField = typesWithIdField.concat(
61
+ schemaAnalyzerResult.interfaceTypes,
62
+ )
63
+ typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.unionTypes)
64
+
65
+ return typesWithIdField.map((type): string => {
66
+ return `input ${type.name}IdInput {\n` + ' id: ID!\n' + '}\n'
67
+ })
68
+ }
69
+
70
+ export function generateObjectInputTypeStrings(
71
+ objectTypes: GraphQLObjectType[],
72
+ ): string[] {
73
+ return objectTypes.map((objectType): string => {
74
+ const name = objectType.name
75
+ const inputTypeName = `${name}Input`
76
+ let inputType = `input ${inputTypeName} {\n`
77
+ let inputTypeFieldStrings = ''
78
+ for (const fieldsKey in objectType.getFields()) {
79
+ const field = objectType.getFields()[fieldsKey]
80
+ if (
81
+ (isNonNullType(field.type) &&
82
+ isScalarType(field.type.ofType) &&
83
+ field.type.ofType.name === 'ID') ||
84
+ (isScalarType(field.type) && field.type.name === 'ID')
85
+ ) {
86
+ continue
87
+ }
88
+ const inputTypeString = generateFieldInputTypeString(field.type)
89
+ inputTypeFieldStrings += ` ${field.name}: ${inputTypeString}\n`
90
+ }
91
+
92
+ if (inputTypeFieldStrings.length > 0) {
93
+ inputType += `${inputTypeFieldStrings}`
94
+ } else {
95
+ // generate a dummy field as empty input types are not permitted
96
+ inputType += ' _: Boolean\n'
97
+ }
98
+ inputType += '}\n'
99
+
100
+ return inputType
101
+ })
102
+ }
103
+
104
+ export function generateUnionInputTypeStrings(
105
+ unionTypes: GraphQLUnionType[],
106
+ ): string[] {
107
+ const typeStrings = unionTypes.map((unionType): string => {
108
+ if (buildsOnTypeWithEntryDirective(unionType)) {
109
+ return ''
110
+ }
111
+
112
+ // see https://github.com/graphql/graphql-spec/pull/825
113
+ let unionInputType = `input ${unionType.name}Input @oneOf {\n`
114
+ for (const innerType of unionType.getTypes()) {
115
+ unionInputType += ` ${innerType.name}: ${innerType.name}Input\n`
116
+ }
117
+ unionInputType += '}\n'
118
+ return unionInputType
119
+ })
120
+
121
+ if (typeStrings.join('').length > 0) {
122
+ typeStrings.push('directive @oneOf on INPUT_OBJECT\n')
123
+ }
124
+
125
+ return typeStrings
126
+ }