@strapi/plugin-graphql 4.15.5 → 4.16.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 (331) hide show
  1. package/dist/admin/admin/src/index.d.ts +16 -0
  2. package/dist/admin/admin/src/pluginId.d.ts +1 -0
  3. package/dist/admin/index.js +31 -17
  4. package/dist/admin/index.js.map +1 -1
  5. package/dist/admin/index.mjs +31 -17
  6. package/dist/admin/index.mjs.map +1 -1
  7. package/dist/server/bootstrap.d.ts +5 -0
  8. package/dist/server/bootstrap.d.ts.map +1 -0
  9. package/dist/server/config/default-config.d.ts +9 -0
  10. package/dist/server/config/default-config.d.ts.map +1 -0
  11. package/dist/server/config/index.d.ts +10 -0
  12. package/dist/server/config/index.d.ts.map +1 -0
  13. package/dist/server/format-graphql-error.d.ts +4 -0
  14. package/dist/server/format-graphql-error.d.ts.map +1 -0
  15. package/dist/server/index.d.ts +301 -0
  16. package/dist/server/index.d.ts.map +1 -0
  17. package/dist/server/index.js +2970 -0
  18. package/dist/server/index.js.map +1 -0
  19. package/dist/server/index.mjs +2949 -0
  20. package/dist/server/index.mjs.map +1 -0
  21. package/dist/server/services/builders/dynamic-zones.d.ts +14 -0
  22. package/dist/server/services/builders/dynamic-zones.d.ts.map +1 -0
  23. package/dist/server/services/builders/entity-meta.d.ts +6 -0
  24. package/dist/server/services/builders/entity-meta.d.ts.map +1 -0
  25. package/dist/server/services/builders/entity.d.ts +12 -0
  26. package/dist/server/services/builders/entity.d.ts.map +1 -0
  27. package/dist/server/services/builders/enums.d.ts +8 -0
  28. package/dist/server/services/builders/enums.d.ts.map +1 -0
  29. package/dist/server/services/builders/filters/content-type.d.ts +8 -0
  30. package/dist/server/services/builders/filters/content-type.d.ts.map +1 -0
  31. package/dist/server/services/builders/filters/index.d.ts +6 -0
  32. package/dist/server/services/builders/filters/index.d.ts.map +1 -0
  33. package/dist/server/services/builders/filters/operators/and.d.ts +8 -0
  34. package/dist/server/services/builders/filters/operators/and.d.ts.map +1 -0
  35. package/dist/server/services/builders/filters/operators/between.d.ts +8 -0
  36. package/dist/server/services/builders/filters/operators/between.d.ts.map +1 -0
  37. package/dist/server/services/builders/filters/operators/contains.d.ts +8 -0
  38. package/dist/server/services/builders/filters/operators/contains.d.ts.map +1 -0
  39. package/dist/server/services/builders/filters/operators/containsi.d.ts +8 -0
  40. package/dist/server/services/builders/filters/operators/containsi.d.ts.map +1 -0
  41. package/dist/server/services/builders/filters/operators/ends-with.d.ts +8 -0
  42. package/dist/server/services/builders/filters/operators/ends-with.d.ts.map +1 -0
  43. package/dist/server/services/builders/filters/operators/eq.d.ts +11 -0
  44. package/dist/server/services/builders/filters/operators/eq.d.ts.map +1 -0
  45. package/dist/server/services/builders/filters/operators/eqi.d.ts +8 -0
  46. package/dist/server/services/builders/filters/operators/eqi.d.ts.map +1 -0
  47. package/dist/server/services/builders/filters/operators/gt.d.ts +8 -0
  48. package/dist/server/services/builders/filters/operators/gt.d.ts.map +1 -0
  49. package/dist/server/services/builders/filters/operators/gte.d.ts +8 -0
  50. package/dist/server/services/builders/filters/operators/gte.d.ts.map +1 -0
  51. package/dist/server/services/builders/filters/operators/in.d.ts +8 -0
  52. package/dist/server/services/builders/filters/operators/in.d.ts.map +1 -0
  53. package/dist/server/services/builders/filters/operators/index.d.ts +11 -0
  54. package/dist/server/services/builders/filters/operators/index.d.ts.map +1 -0
  55. package/dist/server/services/builders/filters/operators/lt.d.ts +8 -0
  56. package/dist/server/services/builders/filters/operators/lt.d.ts.map +1 -0
  57. package/dist/server/services/builders/filters/operators/lte.d.ts +8 -0
  58. package/dist/server/services/builders/filters/operators/lte.d.ts.map +1 -0
  59. package/dist/server/services/builders/filters/operators/ne.d.ts +8 -0
  60. package/dist/server/services/builders/filters/operators/ne.d.ts.map +1 -0
  61. package/dist/server/services/builders/filters/operators/nei.d.ts +8 -0
  62. package/dist/server/services/builders/filters/operators/nei.d.ts.map +1 -0
  63. package/dist/server/services/builders/filters/operators/not-contains.d.ts +8 -0
  64. package/dist/server/services/builders/filters/operators/not-contains.d.ts.map +1 -0
  65. package/dist/server/services/builders/filters/operators/not-containsi.d.ts +8 -0
  66. package/dist/server/services/builders/filters/operators/not-containsi.d.ts.map +1 -0
  67. package/dist/server/services/builders/filters/operators/not-in.d.ts +8 -0
  68. package/dist/server/services/builders/filters/operators/not-in.d.ts.map +1 -0
  69. package/dist/server/services/builders/filters/operators/not-null.d.ts +8 -0
  70. package/dist/server/services/builders/filters/operators/not-null.d.ts.map +1 -0
  71. package/dist/server/services/builders/filters/operators/not.d.ts +11 -0
  72. package/dist/server/services/builders/filters/operators/not.d.ts.map +1 -0
  73. package/dist/server/services/builders/filters/operators/null.d.ts +8 -0
  74. package/dist/server/services/builders/filters/operators/null.d.ts.map +1 -0
  75. package/dist/server/services/builders/filters/operators/or.d.ts +8 -0
  76. package/dist/server/services/builders/filters/operators/or.d.ts.map +1 -0
  77. package/dist/server/services/builders/filters/operators/starts-with.d.ts +8 -0
  78. package/dist/server/services/builders/filters/operators/starts-with.d.ts.map +1 -0
  79. package/dist/server/services/builders/generic-morph.d.ts +6 -0
  80. package/dist/server/services/builders/generic-morph.d.ts.map +1 -0
  81. package/dist/server/services/builders/index.d.ts +58 -0
  82. package/dist/server/services/builders/index.d.ts.map +1 -0
  83. package/dist/server/services/builders/input.d.ts +7 -0
  84. package/dist/server/services/builders/input.d.ts.map +1 -0
  85. package/dist/server/services/builders/mutations/collection-type.d.ts +8 -0
  86. package/dist/server/services/builders/mutations/collection-type.d.ts.map +1 -0
  87. package/dist/server/services/builders/mutations/index.d.ts +7 -0
  88. package/dist/server/services/builders/mutations/index.d.ts.map +1 -0
  89. package/dist/server/services/builders/mutations/single-type.d.ts +8 -0
  90. package/dist/server/services/builders/mutations/single-type.d.ts.map +1 -0
  91. package/dist/server/services/builders/queries/collection-type.d.ts +8 -0
  92. package/dist/server/services/builders/queries/collection-type.d.ts.map +1 -0
  93. package/dist/server/services/builders/queries/index.d.ts +7 -0
  94. package/dist/server/services/builders/queries/index.d.ts.map +1 -0
  95. package/dist/server/services/builders/queries/single-type.d.ts +8 -0
  96. package/dist/server/services/builders/queries/single-type.d.ts.map +1 -0
  97. package/dist/server/services/builders/relation-response-collection.d.ts +10 -0
  98. package/dist/server/services/builders/relation-response-collection.d.ts.map +1 -0
  99. package/dist/server/services/builders/resolvers/association.d.ts +10 -0
  100. package/dist/server/services/builders/resolvers/association.d.ts.map +1 -0
  101. package/dist/server/services/builders/resolvers/component.d.ts +10 -0
  102. package/dist/server/services/builders/resolvers/component.d.ts.map +1 -0
  103. package/dist/server/services/builders/resolvers/dynamic-zone.d.ts +10 -0
  104. package/dist/server/services/builders/resolvers/dynamic-zone.d.ts.map +1 -0
  105. package/dist/server/services/builders/resolvers/index.d.ts +30 -0
  106. package/dist/server/services/builders/resolvers/index.d.ts.map +1 -0
  107. package/dist/server/services/builders/resolvers/mutation.d.ts +13 -0
  108. package/dist/server/services/builders/resolvers/mutation.d.ts.map +1 -0
  109. package/dist/server/services/builders/resolvers/query.d.ts +12 -0
  110. package/dist/server/services/builders/resolvers/query.d.ts.map +1 -0
  111. package/dist/server/services/builders/response-collection.d.ts +12 -0
  112. package/dist/server/services/builders/response-collection.d.ts.map +1 -0
  113. package/dist/server/services/builders/response.d.ts +10 -0
  114. package/dist/server/services/builders/response.d.ts.map +1 -0
  115. package/dist/server/services/builders/type.d.ts +19 -0
  116. package/dist/server/services/builders/type.d.ts.map +1 -0
  117. package/dist/server/services/builders/utils.d.ts +52 -0
  118. package/dist/server/services/builders/utils.d.ts.map +1 -0
  119. package/dist/server/services/constants.d.ts +128 -0
  120. package/dist/server/services/constants.d.ts.map +1 -0
  121. package/dist/server/services/content-api/index.d.ts +8 -0
  122. package/dist/server/services/content-api/index.d.ts.map +1 -0
  123. package/dist/server/services/content-api/policy.d.ts +7 -0
  124. package/dist/server/services/content-api/policy.d.ts.map +1 -0
  125. package/dist/server/services/content-api/register-functions/collection-type.d.ts +9 -0
  126. package/dist/server/services/content-api/register-functions/collection-type.d.ts.map +1 -0
  127. package/dist/server/services/content-api/register-functions/component.d.ts +9 -0
  128. package/dist/server/services/content-api/register-functions/component.d.ts.map +1 -0
  129. package/dist/server/services/content-api/register-functions/content-type/dynamic-zones.d.ts +9 -0
  130. package/dist/server/services/content-api/register-functions/content-type/dynamic-zones.d.ts.map +1 -0
  131. package/dist/server/services/content-api/register-functions/content-type/enums.d.ts +9 -0
  132. package/dist/server/services/content-api/register-functions/content-type/enums.d.ts.map +1 -0
  133. package/dist/server/services/content-api/register-functions/content-type/filters.d.ts +9 -0
  134. package/dist/server/services/content-api/register-functions/content-type/filters.d.ts.map +1 -0
  135. package/dist/server/services/content-api/register-functions/content-type/index.d.ts +24 -0
  136. package/dist/server/services/content-api/register-functions/content-type/index.d.ts.map +1 -0
  137. package/dist/server/services/content-api/register-functions/content-type/inputs.d.ts +9 -0
  138. package/dist/server/services/content-api/register-functions/content-type/inputs.d.ts.map +1 -0
  139. package/dist/server/services/content-api/register-functions/index.d.ts +9 -0
  140. package/dist/server/services/content-api/register-functions/index.d.ts.map +1 -0
  141. package/dist/server/services/content-api/register-functions/internals.d.ts +4 -0
  142. package/dist/server/services/content-api/register-functions/internals.d.ts.map +1 -0
  143. package/dist/server/services/content-api/register-functions/polymorphic.d.ts +5 -0
  144. package/dist/server/services/content-api/register-functions/polymorphic.d.ts.map +1 -0
  145. package/dist/server/services/content-api/register-functions/scalars.d.ts +4 -0
  146. package/dist/server/services/content-api/register-functions/scalars.d.ts.map +1 -0
  147. package/dist/server/services/content-api/register-functions/single-type.d.ts +9 -0
  148. package/dist/server/services/content-api/register-functions/single-type.d.ts.map +1 -0
  149. package/dist/server/services/content-api/wrap-resolvers.d.ts +18 -0
  150. package/dist/server/services/content-api/wrap-resolvers.d.ts.map +1 -0
  151. package/dist/server/services/extension/extension.d.ts +63 -0
  152. package/dist/server/services/extension/extension.d.ts.map +1 -0
  153. package/dist/server/services/extension/index.d.ts +3 -0
  154. package/dist/server/services/extension/index.d.ts.map +1 -0
  155. package/dist/server/services/extension/shadow-crud-manager.d.ts +40 -0
  156. package/dist/server/services/extension/shadow-crud-manager.d.ts.map +1 -0
  157. package/dist/server/services/format/index.d.ts +20 -0
  158. package/dist/server/services/format/index.d.ts.map +1 -0
  159. package/dist/server/services/format/return-types.d.ts +22 -0
  160. package/dist/server/services/format/return-types.d.ts.map +1 -0
  161. package/dist/server/services/index.d.ts +287 -0
  162. package/dist/server/services/index.d.ts.map +1 -0
  163. package/dist/server/services/internals/args/index.d.ts +8 -0
  164. package/dist/server/services/internals/args/index.d.ts.map +1 -0
  165. package/dist/server/services/internals/args/pagination.d.ts +3 -0
  166. package/dist/server/services/internals/args/pagination.d.ts.map +1 -0
  167. package/dist/server/services/internals/args/publication-state.d.ts +4 -0
  168. package/dist/server/services/internals/args/publication-state.d.ts.map +1 -0
  169. package/dist/server/services/internals/args/sort.d.ts +3 -0
  170. package/dist/server/services/internals/args/sort.d.ts.map +1 -0
  171. package/dist/server/services/internals/helpers/get-enabled-scalars.d.ts +4 -0
  172. package/dist/server/services/internals/helpers/get-enabled-scalars.d.ts.map +1 -0
  173. package/dist/server/services/internals/helpers/index.d.ts +6 -0
  174. package/dist/server/services/internals/helpers/index.d.ts.map +1 -0
  175. package/dist/server/services/internals/index.d.ts +46 -0
  176. package/dist/server/services/internals/index.d.ts.map +1 -0
  177. package/dist/server/services/internals/scalars/date.d.ts +3 -0
  178. package/dist/server/services/internals/scalars/date.d.ts.map +1 -0
  179. package/dist/server/services/internals/scalars/index.d.ts +10 -0
  180. package/dist/server/services/internals/scalars/index.d.ts.map +1 -0
  181. package/dist/server/services/internals/scalars/time.d.ts +8 -0
  182. package/dist/server/services/internals/scalars/time.d.ts.map +1 -0
  183. package/dist/server/services/internals/types/error.d.ts +8 -0
  184. package/dist/server/services/internals/types/error.d.ts.map +1 -0
  185. package/dist/server/services/internals/types/filters.d.ts +6 -0
  186. package/dist/server/services/internals/types/filters.d.ts.map +1 -0
  187. package/dist/server/services/internals/types/index.d.ts +28 -0
  188. package/dist/server/services/internals/types/index.d.ts.map +1 -0
  189. package/dist/server/services/internals/types/pagination.d.ts +10 -0
  190. package/dist/server/services/internals/types/pagination.d.ts.map +1 -0
  191. package/dist/server/services/internals/types/publication-state.d.ts +10 -0
  192. package/dist/server/services/internals/types/publication-state.d.ts.map +1 -0
  193. package/dist/server/services/internals/types/response-collection-meta.d.ts +11 -0
  194. package/dist/server/services/internals/types/response-collection-meta.d.ts.map +1 -0
  195. package/dist/server/services/type-registry.d.ts +15 -0
  196. package/dist/server/services/type-registry.d.ts.map +1 -0
  197. package/dist/server/services/types.d.ts +7 -0
  198. package/dist/server/services/types.d.ts.map +1 -0
  199. package/dist/server/services/utils/attributes.d.ts +14 -0
  200. package/dist/server/services/utils/attributes.d.ts.map +1 -0
  201. package/dist/server/services/utils/index.d.ts +81 -0
  202. package/dist/server/services/utils/index.d.ts.map +1 -0
  203. package/dist/server/services/utils/mappers/entity-to-response-entity.d.ts +33 -0
  204. package/dist/server/services/utils/mappers/entity-to-response-entity.d.ts.map +1 -0
  205. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.d.ts +13 -0
  206. package/dist/server/services/utils/mappers/graphql-filters-to-strapi-query.d.ts.map +1 -0
  207. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.d.ts +6 -0
  208. package/dist/server/services/utils/mappers/graphql-scalar-to-operators.d.ts.map +1 -0
  209. package/dist/server/services/utils/mappers/index.d.ts +36 -0
  210. package/dist/server/services/utils/mappers/index.d.ts.map +1 -0
  211. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts +9 -0
  212. package/dist/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.d.ts.map +1 -0
  213. package/dist/server/services/utils/naming.d.ts +37 -0
  214. package/dist/server/services/utils/naming.d.ts.map +1 -0
  215. package/package.json +28 -16
  216. package/strapi-server.js +1 -11
  217. package/.eslintignore +0 -1
  218. package/.eslintrc +0 -14
  219. package/admin/src/index.js +0 -38
  220. package/admin/src/pluginId.js +0 -5
  221. package/admin/src/translations/dk.json +0 -5
  222. package/admin/src/translations/en.json +0 -5
  223. package/admin/src/translations/es.json +0 -5
  224. package/admin/src/translations/fr.json +0 -5
  225. package/admin/src/translations/pl.json +0 -5
  226. package/admin/src/translations/ru.json +0 -5
  227. package/admin/src/translations/sv.json +0 -5
  228. package/admin/src/translations/tr.json +0 -5
  229. package/admin/src/translations/zh-Hans.json +0 -5
  230. package/admin/src/translations/zh.json +0 -5
  231. package/packup.config.ts +0 -42
  232. package/server/bootstrap.js +0 -134
  233. package/server/config/default-config.js +0 -13
  234. package/server/config/index.js +0 -7
  235. package/server/format-graphql-error.js +0 -45
  236. package/server/services/builders/dynamic-zones.js +0 -97
  237. package/server/services/builders/entity-meta.js +0 -7
  238. package/server/services/builders/entity.js +0 -43
  239. package/server/services/builders/enums.js +0 -26
  240. package/server/services/builders/filters/content-type.js +0 -111
  241. package/server/services/builders/filters/index.js +0 -7
  242. package/server/services/builders/filters/operators/and.js +0 -15
  243. package/server/services/builders/filters/operators/between.js +0 -15
  244. package/server/services/builders/filters/operators/contains.js +0 -13
  245. package/server/services/builders/filters/operators/containsi.js +0 -13
  246. package/server/services/builders/filters/operators/ends-with.js +0 -13
  247. package/server/services/builders/filters/operators/eq.js +0 -23
  248. package/server/services/builders/filters/operators/eqi.js +0 -13
  249. package/server/services/builders/filters/operators/gt.js +0 -13
  250. package/server/services/builders/filters/operators/gte.js +0 -13
  251. package/server/services/builders/filters/operators/in.js +0 -15
  252. package/server/services/builders/filters/operators/index.js +0 -40
  253. package/server/services/builders/filters/operators/lt.js +0 -13
  254. package/server/services/builders/filters/operators/lte.js +0 -13
  255. package/server/services/builders/filters/operators/ne.js +0 -13
  256. package/server/services/builders/filters/operators/nei.js +0 -13
  257. package/server/services/builders/filters/operators/not-contains.js +0 -13
  258. package/server/services/builders/filters/operators/not-containsi.js +0 -13
  259. package/server/services/builders/filters/operators/not-in.js +0 -15
  260. package/server/services/builders/filters/operators/not-null.js +0 -13
  261. package/server/services/builders/filters/operators/not.js +0 -19
  262. package/server/services/builders/filters/operators/null.js +0 -13
  263. package/server/services/builders/filters/operators/or.js +0 -15
  264. package/server/services/builders/filters/operators/starts-with.js +0 -13
  265. package/server/services/builders/generic-morph.js +0 -41
  266. package/server/services/builders/index.js +0 -92
  267. package/server/services/builders/input.js +0 -121
  268. package/server/services/builders/mutations/collection-type.js +0 -191
  269. package/server/services/builders/mutations/index.js +0 -9
  270. package/server/services/builders/mutations/single-type.js +0 -164
  271. package/server/services/builders/queries/collection-type.js +0 -122
  272. package/server/services/builders/queries/index.js +0 -9
  273. package/server/services/builders/queries/single-type.js +0 -71
  274. package/server/services/builders/relation-response-collection.js +0 -32
  275. package/server/services/builders/resolvers/association.js +0 -92
  276. package/server/services/builders/resolvers/component.js +0 -25
  277. package/server/services/builders/resolvers/dynamic-zone.js +0 -9
  278. package/server/services/builders/resolvers/index.js +0 -18
  279. package/server/services/builders/resolvers/mutation.js +0 -38
  280. package/server/services/builders/resolvers/query.js +0 -34
  281. package/server/services/builders/response-collection.js +0 -40
  282. package/server/services/builders/response.js +0 -32
  283. package/server/services/builders/type.js +0 -363
  284. package/server/services/builders/utils.js +0 -134
  285. package/server/services/constants.js +0 -153
  286. package/server/services/content-api/index.js +0 -188
  287. package/server/services/content-api/policy.js +0 -60
  288. package/server/services/content-api/register-functions/collection-type.js +0 -72
  289. package/server/services/content-api/register-functions/component.js +0 -15
  290. package/server/services/content-api/register-functions/content-type/dynamic-zones.js +0 -36
  291. package/server/services/content-api/register-functions/content-type/enums.js +0 -33
  292. package/server/services/content-api/register-functions/content-type/filters.js +0 -15
  293. package/server/services/content-api/register-functions/content-type/index.js +0 -13
  294. package/server/services/content-api/register-functions/content-type/inputs.js +0 -21
  295. package/server/services/content-api/register-functions/index.js +0 -22
  296. package/server/services/content-api/register-functions/internals.js +0 -13
  297. package/server/services/content-api/register-functions/polymorphic.js +0 -69
  298. package/server/services/content-api/register-functions/scalars.js +0 -14
  299. package/server/services/content-api/register-functions/single-type.js +0 -72
  300. package/server/services/content-api/wrap-resolvers.js +0 -148
  301. package/server/services/extension/extension.js +0 -94
  302. package/server/services/extension/index.js +0 -5
  303. package/server/services/extension/shadow-crud-manager.js +0 -161
  304. package/server/services/format/index.js +0 -7
  305. package/server/services/format/return-types.js +0 -27
  306. package/server/services/index.js +0 -21
  307. package/server/services/internals/args/index.js +0 -11
  308. package/server/services/internals/args/pagination.js +0 -19
  309. package/server/services/internals/args/publication-state.js +0 -12
  310. package/server/services/internals/args/sort.js +0 -10
  311. package/server/services/internals/helpers/get-enabled-scalars.js +0 -17
  312. package/server/services/internals/helpers/index.js +0 -7
  313. package/server/services/internals/index.js +0 -13
  314. package/server/services/internals/scalars/date.js +0 -22
  315. package/server/services/internals/scalars/index.js +0 -17
  316. package/server/services/internals/scalars/time.js +0 -36
  317. package/server/services/internals/types/error.js +0 -34
  318. package/server/services/internals/types/filters.js +0 -39
  319. package/server/services/internals/types/index.js +0 -29
  320. package/server/services/internals/types/pagination.js +0 -24
  321. package/server/services/internals/types/publication-state.js +0 -24
  322. package/server/services/internals/types/response-collection-meta.js +0 -46
  323. package/server/services/type-registry.js +0 -104
  324. package/server/services/utils/attributes.js +0 -78
  325. package/server/services/utils/index.js +0 -11
  326. package/server/services/utils/mappers/entity-to-response-entity.js +0 -12
  327. package/server/services/utils/mappers/graphql-filters-to-strapi-query.js +0 -119
  328. package/server/services/utils/mappers/graphql-scalar-to-operators.js +0 -17
  329. package/server/services/utils/mappers/index.js +0 -13
  330. package/server/services/utils/mappers/strapi-scalar-to-graphql-scalar.js +0 -25
  331. package/server/services/utils/naming.js +0 -287
@@ -1,287 +0,0 @@
1
- 'use strict';
2
-
3
- const { camelCase, upperFirst, lowerFirst, pipe, get } = require('lodash/fp');
4
- const { singular } = require('pluralize');
5
- const { ApplicationError } = require('@strapi/utils').errors;
6
-
7
- module.exports = ({ strapi }) => {
8
- /**
9
- * Build a type name for a enum based on a content type & an attribute name
10
- * @param {object} contentType
11
- * @param {string} attributeName
12
- * @return {string}
13
- */
14
- const getEnumName = (contentType, attributeName) => {
15
- const { attributes } = contentType;
16
- const { enumName } = attributes[attributeName];
17
- const { modelType } = contentType;
18
-
19
- const typeName =
20
- modelType === 'component' ? getComponentName(contentType) : getTypeName(contentType);
21
-
22
- const defaultEnumName = `ENUM_${typeName.toUpperCase()}_${attributeName.toUpperCase()}`;
23
-
24
- return enumName || defaultEnumName;
25
- };
26
-
27
- /**
28
- * Build the base type name for a given content type
29
- * @param {object} contentType
30
- * @param {object} options
31
- * @param {'singular' | 'plural'} options.plurality
32
- * @return {string}
33
- */
34
- const getTypeName = (contentType, { plurality = 'singular' } = {}) => {
35
- const plugin = get('plugin', contentType);
36
- const modelName = get('modelName', contentType);
37
- const name =
38
- plurality === 'singular'
39
- ? get('info.singularName', contentType)
40
- : get('info.pluralName', contentType);
41
-
42
- const transformedPlugin = upperFirst(camelCase(plugin));
43
- const transformedModelName = upperFirst(camelCase(name || singular(modelName)));
44
-
45
- return `${transformedPlugin}${transformedModelName}`;
46
- };
47
-
48
- /**
49
- * Build the entity's type name for a given content type
50
- * @param {object} contentType
51
- * @return {string}
52
- */
53
- const getEntityName = (contentType) => {
54
- return `${getTypeName(contentType)}Entity`;
55
- };
56
-
57
- /**
58
- * Build the entity meta type name for a given content type
59
- * @param {object} contentType
60
- * @return {string}
61
- */
62
- const getEntityMetaName = (contentType) => {
63
- return `${getEntityName(contentType)}Meta`;
64
- };
65
-
66
- /**
67
- * Build the entity response's type name for a given content type
68
- * @param {object} contentType
69
- * @return {string}
70
- */
71
- const getEntityResponseName = (contentType) => {
72
- return `${getEntityName(contentType)}Response`;
73
- };
74
-
75
- /**
76
- * Build the entity response collection's type name for a given content type
77
- * @param {object} contentType
78
- * @return {string}
79
- */
80
- const getEntityResponseCollectionName = (contentType) => {
81
- return `${getEntityName(contentType)}ResponseCollection`;
82
- };
83
-
84
- /**
85
- * Build the relation response collection's type name for a given content type
86
- * @param {object} contentType
87
- * @return {string}
88
- */
89
- const getRelationResponseCollectionName = (contentType) => {
90
- return `${getTypeName(contentType)}RelationResponseCollection`;
91
- };
92
-
93
- /**
94
- * Build a component type name based on its definition
95
- * @param {object} contentType
96
- * @return {string}
97
- */
98
- const getComponentName = (contentType) => {
99
- return contentType.globalId;
100
- };
101
-
102
- /**
103
- * Build a component type name based on a content type's attribute
104
- * @param {object} attribute
105
- * @return {string}
106
- */
107
- const getComponentNameFromAttribute = (attribute) => {
108
- return strapi.components[attribute.component].globalId;
109
- };
110
-
111
- /**
112
- * Build a dynamic zone type name based on a content type and an attribute name
113
- * @param {object} contentType
114
- * @param {string} attributeName
115
- * @return {string}
116
- */
117
- const getDynamicZoneName = (contentType, attributeName) => {
118
- const typeName = getTypeName(contentType);
119
- const dzName = upperFirst(camelCase(attributeName));
120
- const suffix = 'DynamicZone';
121
-
122
- return `${typeName}${dzName}${suffix}`;
123
- };
124
-
125
- /**
126
- * Build a dynamic zone input type name based on a content type and an attribute name
127
- * @param {object} contentType
128
- * @param {string} attributeName
129
- * @return {string}
130
- */
131
- const getDynamicZoneInputName = (contentType, attributeName) => {
132
- const dzName = getDynamicZoneName(contentType, attributeName);
133
-
134
- return `${dzName}Input`;
135
- };
136
-
137
- /**
138
- * Build a component input type name based on a content type and an attribute name
139
- * @param {object} contentType
140
- * @return {string}
141
- */
142
- const getComponentInputName = (contentType) => {
143
- const componentName = getComponentName(contentType);
144
-
145
- return `${componentName}Input`;
146
- };
147
-
148
- /**
149
- * Build a content type input name based on a content type and an attribute name
150
- * @param {object} contentType
151
- * @return {string}
152
- */
153
- const getContentTypeInputName = (contentType) => {
154
- const typeName = getTypeName(contentType);
155
-
156
- return `${typeName}Input`;
157
- };
158
-
159
- /**
160
- * Build the queries type name for a given content type
161
- * @param {object} contentType
162
- * @return {string}
163
- */
164
- const getEntityQueriesTypeName = (contentType) => {
165
- return `${getEntityName(contentType)}Queries`;
166
- };
167
-
168
- /**
169
- * Build the mutations type name for a given content type
170
- * @param {object} contentType
171
- * @return {string}
172
- */
173
- const getEntityMutationsTypeName = (contentType) => {
174
- return `${getEntityName(contentType)}Mutations`;
175
- };
176
-
177
- /**
178
- * Build the filters type name for a given content type
179
- * @param {object} contentType
180
- * @return {string}
181
- */
182
- const getFiltersInputTypeName = (contentType) => {
183
- const isComponent = contentType.modelType === 'component';
184
-
185
- const baseName = isComponent ? getComponentName(contentType) : getTypeName(contentType);
186
-
187
- return `${baseName}FiltersInput`;
188
- };
189
-
190
- /**
191
- * Build a filters type name for a given GraphQL scalar type
192
- * @param {NexusGenScalars} scalarType
193
- * @return {string}
194
- */
195
- const getScalarFilterInputTypeName = (scalarType) => {
196
- return `${scalarType}FilterInput`;
197
- };
198
-
199
- /**
200
- * Build a type name for a given content type & polymorphic attribute
201
- * @param {object} contentType
202
- * @param {string} attributeName
203
- * @return {string}
204
- */
205
- const getMorphRelationTypeName = (contentType, attributeName) => {
206
- const typeName = getTypeName(contentType);
207
- const formattedAttr = upperFirst(camelCase(attributeName));
208
-
209
- return `${typeName}${formattedAttr}Morph`;
210
- };
211
-
212
- /**
213
- * Build a custom type name generator with different customization options
214
- * @param {object} options
215
- * @param {string} [options.prefix]
216
- * @param {string} [options.suffix]
217
- * @param {'upper' | 'lower'} [options.firstLetterCase]
218
- * @param {'plural' | 'singular'} [options.plurality]
219
- * @return {function(*=): string}
220
- */
221
- const buildCustomTypeNameGenerator = (options = {}) => {
222
- // todo[v4]: use singularName & pluralName is available
223
- const { prefix = '', suffix = '', plurality = 'singular', firstLetterCase = 'upper' } = options;
224
-
225
- if (!['plural', 'singular'].includes(plurality)) {
226
- throw new ApplicationError(
227
- `"plurality" param must be either "plural" or "singular", but got: "${plurality}"`
228
- );
229
- }
230
-
231
- const getCustomTypeName = pipe(
232
- (ct) => getTypeName(ct, { plurality }),
233
- firstLetterCase === 'upper' ? upperFirst : lowerFirst
234
- );
235
-
236
- return (contentType) => `${prefix}${getCustomTypeName(contentType)}${suffix}`;
237
- };
238
-
239
- const getFindQueryName = buildCustomTypeNameGenerator({
240
- plurality: 'plural',
241
- firstLetterCase: 'lower',
242
- });
243
-
244
- const getFindOneQueryName = buildCustomTypeNameGenerator({ firstLetterCase: 'lower' });
245
-
246
- const getCreateMutationTypeName = buildCustomTypeNameGenerator({
247
- prefix: 'create',
248
- firstLetterCase: 'upper',
249
- });
250
-
251
- const getUpdateMutationTypeName = buildCustomTypeNameGenerator({
252
- prefix: 'update',
253
- firstLetterCase: 'upper',
254
- });
255
-
256
- const getDeleteMutationTypeName = buildCustomTypeNameGenerator({
257
- prefix: 'delete',
258
- firstLetterCase: 'upper',
259
- });
260
-
261
- return {
262
- getEnumName,
263
- getTypeName,
264
- getEntityName,
265
- getEntityMetaName,
266
- getEntityResponseName,
267
- getEntityResponseCollectionName,
268
- getRelationResponseCollectionName,
269
- getComponentName,
270
- getComponentNameFromAttribute,
271
- getDynamicZoneName,
272
- getDynamicZoneInputName,
273
- getComponentInputName,
274
- getContentTypeInputName,
275
- getEntityQueriesTypeName,
276
- getEntityMutationsTypeName,
277
- getFiltersInputTypeName,
278
- getScalarFilterInputTypeName,
279
- getMorphRelationTypeName,
280
- buildCustomTypeNameGenerator,
281
- getFindQueryName,
282
- getFindOneQueryName,
283
- getCreateMutationTypeName,
284
- getUpdateMutationTypeName,
285
- getDeleteMutationTypeName,
286
- };
287
- };