@tmdb-graphql-api/resolvers 0.1.0 → 0.1.1-unstable.0

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 (486) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/index.mjs +1 -1
  4. package/dist/esm/index.mjs.map +1 -1
  5. package/dist/production.analysis.txt +505 -412
  6. package/dist/types/cjs/constants.d.cts +3 -0
  7. package/dist/types/cjs/constants.d.cts.map +1 -1
  8. package/dist/types/cjs/helpers/buildArgsResolver.d.cts +9 -0
  9. package/dist/types/cjs/helpers/buildArgsResolver.d.cts.map +1 -0
  10. package/dist/types/cjs/helpers/buildNoObjArgsResolver.d.cts +9 -0
  11. package/dist/types/cjs/helpers/buildNoObjArgsResolver.d.cts.map +1 -0
  12. package/dist/types/cjs/helpers/buildObjArgsResolver.d.cts +9 -0
  13. package/dist/types/cjs/helpers/buildObjArgsResolver.d.cts.map +1 -0
  14. package/dist/types/cjs/helpers/buildObjResolver.d.cts +11 -0
  15. package/dist/types/cjs/helpers/buildObjResolver.d.cts.map +1 -0
  16. package/dist/types/cjs/helpers/getTvIdSeasonAndEpisode.d.cts +2 -2
  17. package/dist/types/cjs/helpers/getTvIdSeasonAndEpisode.d.cts.map +1 -1
  18. package/dist/types/cjs/main.d.cts.map +1 -1
  19. package/dist/types/cjs/queries/certifications.d.cts +429 -4
  20. package/dist/types/cjs/queries/certifications.d.cts.map +1 -1
  21. package/dist/types/cjs/queries/collection.d.cts +63 -3399
  22. package/dist/types/cjs/queries/collection.d.cts.map +1 -1
  23. package/dist/types/cjs/queries/collectionImages.d.cts +40 -13
  24. package/dist/types/cjs/queries/collectionImages.d.cts.map +1 -1
  25. package/dist/types/cjs/queries/collectionTranslations.d.cts +34 -17
  26. package/dist/types/cjs/queries/collectionTranslations.d.cts.map +1 -1
  27. package/dist/types/cjs/queries/company.d.cts +10 -13
  28. package/dist/types/cjs/queries/company.d.cts.map +1 -1
  29. package/dist/types/cjs/queries/companyAlternativeNames.d.cts +27 -9
  30. package/dist/types/cjs/queries/companyAlternativeNames.d.cts.map +1 -1
  31. package/dist/types/cjs/queries/companyLogos.d.cts +19 -13
  32. package/dist/types/cjs/queries/companyLogos.d.cts.map +1 -1
  33. package/dist/types/cjs/queries/configuration.d.cts +11 -14
  34. package/dist/types/cjs/queries/configuration.d.cts.map +1 -1
  35. package/dist/types/cjs/queries/configurationCountries.d.cts +16 -3
  36. package/dist/types/cjs/queries/configurationCountries.d.cts.map +1 -1
  37. package/dist/types/cjs/queries/configurationJobs.d.cts +15 -3
  38. package/dist/types/cjs/queries/configurationJobs.d.cts.map +1 -1
  39. package/dist/types/cjs/queries/configurationLanguages.d.cts +16 -3
  40. package/dist/types/cjs/queries/configurationLanguages.d.cts.map +1 -1
  41. package/dist/types/cjs/queries/configurationPrimaryTranslations.d.cts +12 -3
  42. package/dist/types/cjs/queries/configurationPrimaryTranslations.d.cts.map +1 -1
  43. package/dist/types/cjs/queries/configurationTimezones.d.cts +15 -3
  44. package/dist/types/cjs/queries/configurationTimezones.d.cts.map +1 -1
  45. package/dist/types/cjs/queries/credit.d.cts +46 -4193
  46. package/dist/types/cjs/queries/credit.d.cts.map +1 -1
  47. package/dist/types/cjs/queries/discoverMovies.d.cts +2 -4
  48. package/dist/types/cjs/queries/discoverMovies.d.cts.map +1 -1
  49. package/dist/types/cjs/queries/discoverTv.d.cts +2 -4
  50. package/dist/types/cjs/queries/discoverTv.d.cts.map +1 -1
  51. package/dist/types/cjs/queries/episode.d.cts +236 -94
  52. package/dist/types/cjs/queries/episode.d.cts.map +1 -1
  53. package/dist/types/cjs/queries/episodeCredits.d.cts +168 -32
  54. package/dist/types/cjs/queries/episodeCredits.d.cts.map +1 -1
  55. package/dist/types/cjs/queries/episodeExternalIds.d.cts +139 -15
  56. package/dist/types/cjs/queries/episodeExternalIds.d.cts.map +1 -1
  57. package/dist/types/cjs/queries/episodeStills.d.cts +140 -5
  58. package/dist/types/cjs/queries/episodeStills.d.cts.map +1 -1
  59. package/dist/types/cjs/queries/episodeTranslations.d.cts +141 -19
  60. package/dist/types/cjs/queries/episodeTranslations.d.cts.map +1 -1
  61. package/dist/types/cjs/queries/episodeVideos.d.cts +142 -14
  62. package/dist/types/cjs/queries/episodeVideos.d.cts.map +1 -1
  63. package/dist/types/cjs/queries/find.d.cts +10 -1801
  64. package/dist/types/cjs/queries/find.d.cts.map +1 -1
  65. package/dist/types/cjs/queries/genres.d.cts +6 -6
  66. package/dist/types/cjs/queries/genres.d.cts.map +1 -1
  67. package/dist/types/cjs/queries/keyword.d.cts +3 -6
  68. package/dist/types/cjs/queries/keyword.d.cts.map +1 -1
  69. package/dist/types/cjs/queries/movie.d.cts +35 -3588
  70. package/dist/types/cjs/queries/movie.d.cts.map +1 -1
  71. package/dist/types/cjs/queries/movieAlternativeTitles.d.cts +1736 -5
  72. package/dist/types/cjs/queries/movieAlternativeTitles.d.cts.map +1 -1
  73. package/dist/types/cjs/queries/movieCredits.d.cts +1757 -32
  74. package/dist/types/cjs/queries/movieCredits.d.cts.map +1 -1
  75. package/dist/types/cjs/queries/movieExternalIds.d.cts +1738 -15
  76. package/dist/types/cjs/queries/movieExternalIds.d.cts.map +1 -1
  77. package/dist/types/cjs/queries/movieImages.d.cts +1756 -5
  78. package/dist/types/cjs/queries/movieImages.d.cts.map +1 -1
  79. package/dist/types/cjs/queries/movieKeywords.d.cts +1735 -5
  80. package/dist/types/cjs/queries/movieKeywords.d.cts.map +1 -1
  81. package/dist/types/cjs/queries/movieRecommendations.d.cts +1729 -1849
  82. package/dist/types/cjs/queries/movieRecommendations.d.cts.map +1 -1
  83. package/dist/types/cjs/queries/movieReleaseDates.d.cts +1742 -12
  84. package/dist/types/cjs/queries/movieReleaseDates.d.cts.map +1 -1
  85. package/dist/types/cjs/queries/movieReviews.d.cts +1729 -1849
  86. package/dist/types/cjs/queries/movieReviews.d.cts.map +1 -1
  87. package/dist/types/cjs/queries/movieSimilarMovies.d.cts +1729 -1849
  88. package/dist/types/cjs/queries/movieSimilarMovies.d.cts.map +1 -1
  89. package/dist/types/cjs/queries/movieTranslations.d.cts +1744 -19
  90. package/dist/types/cjs/queries/movieTranslations.d.cts.map +1 -1
  91. package/dist/types/cjs/queries/movieVideos.d.cts +1742 -14
  92. package/dist/types/cjs/queries/movieVideos.d.cts.map +1 -1
  93. package/dist/types/cjs/queries/movieWatchProviders.d.cts +3205 -1373
  94. package/dist/types/cjs/queries/movieWatchProviders.d.cts.map +1 -1
  95. package/dist/types/cjs/queries/network.d.cts +15 -24
  96. package/dist/types/cjs/queries/network.d.cts.map +1 -1
  97. package/dist/types/cjs/queries/networkAlternativeNames.d.cts +11 -9
  98. package/dist/types/cjs/queries/networkAlternativeNames.d.cts.map +1 -1
  99. package/dist/types/cjs/queries/networkLogos.d.cts +17 -13
  100. package/dist/types/cjs/queries/networkLogos.d.cts.map +1 -1
  101. package/dist/types/cjs/queries/person.d.cts +13 -41
  102. package/dist/types/cjs/queries/person.d.cts.map +1 -1
  103. package/dist/types/cjs/queries/personCombinedCredits.d.cts +233 -5
  104. package/dist/types/cjs/queries/personCombinedCredits.d.cts.map +1 -1
  105. package/dist/types/cjs/queries/personExternalIds.d.cts +203 -5
  106. package/dist/types/cjs/queries/personExternalIds.d.cts.map +1 -1
  107. package/dist/types/cjs/queries/personMovieCredits.d.cts +231 -5
  108. package/dist/types/cjs/queries/personMovieCredits.d.cts.map +1 -1
  109. package/dist/types/cjs/queries/personProfiles.d.cts +200 -5
  110. package/dist/types/cjs/queries/personProfiles.d.cts.map +1 -1
  111. package/dist/types/cjs/queries/personTranslations.d.cts +201 -19
  112. package/dist/types/cjs/queries/personTranslations.d.cts.map +1 -1
  113. package/dist/types/cjs/queries/personTvCredits.d.cts +232 -5
  114. package/dist/types/cjs/queries/personTvCredits.d.cts.map +1 -1
  115. package/dist/types/cjs/queries/rated.d.cts +6 -8
  116. package/dist/types/cjs/queries/rated.d.cts.map +1 -1
  117. package/dist/types/cjs/queries/review.d.cts +38 -24
  118. package/dist/types/cjs/queries/review.d.cts.map +1 -1
  119. package/dist/types/cjs/queries/search.d.cts +6 -8
  120. package/dist/types/cjs/queries/search.d.cts.map +1 -1
  121. package/dist/types/cjs/queries/season.d.cts +233 -279
  122. package/dist/types/cjs/queries/season.d.cts.map +1 -1
  123. package/dist/types/cjs/queries/seasonCredits.d.cts +152 -32
  124. package/dist/types/cjs/queries/seasonCredits.d.cts.map +1 -1
  125. package/dist/types/cjs/queries/seasonEpisodeCount.d.cts.map +1 -1
  126. package/dist/types/cjs/queries/seasonExternalIds.d.cts +134 -5
  127. package/dist/types/cjs/queries/seasonExternalIds.d.cts.map +1 -1
  128. package/dist/types/cjs/queries/seasonPosters.d.cts +136 -5
  129. package/dist/types/cjs/queries/seasonPosters.d.cts.map +1 -1
  130. package/dist/types/cjs/queries/seasonTranslations.d.cts +137 -19
  131. package/dist/types/cjs/queries/seasonTranslations.d.cts.map +1 -1
  132. package/dist/types/cjs/queries/seasonVideos.d.cts +138 -14
  133. package/dist/types/cjs/queries/seasonVideos.d.cts.map +1 -1
  134. package/dist/types/cjs/queries/trending.d.cts +5 -7
  135. package/dist/types/cjs/queries/trending.d.cts.map +1 -1
  136. package/dist/types/cjs/queries/tv.d.cts +79 -10455
  137. package/dist/types/cjs/queries/tv.d.cts.map +1 -1
  138. package/dist/types/cjs/queries/tvAlternativeTitles.d.cts +1273 -10
  139. package/dist/types/cjs/queries/tvAlternativeTitles.d.cts.map +1 -1
  140. package/dist/types/cjs/queries/tvContentRatings.d.cts +1273 -8
  141. package/dist/types/cjs/queries/tvContentRatings.d.cts.map +1 -1
  142. package/dist/types/cjs/queries/tvCredits.d.cts +1294 -32
  143. package/dist/types/cjs/queries/tvCredits.d.cts.map +1 -1
  144. package/dist/types/cjs/queries/tvEpisodeGroups.d.cts +1281 -38
  145. package/dist/types/cjs/queries/tvEpisodeGroups.d.cts.map +1 -1
  146. package/dist/types/cjs/queries/tvExternalIds.d.cts +1280 -15
  147. package/dist/types/cjs/queries/tvExternalIds.d.cts.map +1 -1
  148. package/dist/types/cjs/queries/tvImages.d.cts +1294 -15
  149. package/dist/types/cjs/queries/tvImages.d.cts.map +1 -1
  150. package/dist/types/cjs/queries/tvKeywords.d.cts +1272 -8
  151. package/dist/types/cjs/queries/tvKeywords.d.cts.map +1 -1
  152. package/dist/types/cjs/queries/tvRecommendations.d.cts +1265 -5354
  153. package/dist/types/cjs/queries/tvRecommendations.d.cts.map +1 -1
  154. package/dist/types/cjs/queries/tvReviews.d.cts +1265 -5354
  155. package/dist/types/cjs/queries/tvReviews.d.cts.map +1 -1
  156. package/dist/types/cjs/queries/tvSimilarTvShows.d.cts +1265 -5354
  157. package/dist/types/cjs/queries/tvSimilarTvShows.d.cts.map +1 -1
  158. package/dist/types/cjs/queries/tvTranslations.d.cts +1280 -18
  159. package/dist/types/cjs/queries/tvTranslations.d.cts.map +1 -1
  160. package/dist/types/cjs/queries/tvVideos.d.cts +1280 -14
  161. package/dist/types/cjs/queries/tvVideos.d.cts.map +1 -1
  162. package/dist/types/cjs/queries/tvWatchProviders.d.cts +2174 -1371
  163. package/dist/types/cjs/queries/tvWatchProviders.d.cts.map +1 -1
  164. package/dist/types/cjs/queries/videoType.d.cts +2 -2
  165. package/dist/types/cjs/queries/videoType.d.cts.map +1 -1
  166. package/dist/types/cjs/types.d.cts +130 -295
  167. package/dist/types/cjs/types.d.cts.map +1 -1
  168. package/dist/types/esm/constants.d.ts +3 -0
  169. package/dist/types/esm/constants.d.ts.map +1 -1
  170. package/dist/types/esm/helpers/buildArgsResolver.d.ts +9 -0
  171. package/dist/types/esm/helpers/buildArgsResolver.d.ts.map +1 -0
  172. package/dist/types/esm/helpers/buildNoObjArgsResolver.d.ts +9 -0
  173. package/dist/types/esm/helpers/buildNoObjArgsResolver.d.ts.map +1 -0
  174. package/dist/types/esm/helpers/buildObjArgsResolver.d.ts +9 -0
  175. package/dist/types/esm/helpers/buildObjArgsResolver.d.ts.map +1 -0
  176. package/dist/types/esm/helpers/buildObjResolver.d.ts +11 -0
  177. package/dist/types/esm/helpers/buildObjResolver.d.ts.map +1 -0
  178. package/dist/types/esm/helpers/getTvIdSeasonAndEpisode.d.ts +2 -2
  179. package/dist/types/esm/helpers/getTvIdSeasonAndEpisode.d.ts.map +1 -1
  180. package/dist/types/esm/main.d.ts.map +1 -1
  181. package/dist/types/esm/queries/certifications.d.ts +429 -4
  182. package/dist/types/esm/queries/certifications.d.ts.map +1 -1
  183. package/dist/types/esm/queries/collection.d.ts +63 -3399
  184. package/dist/types/esm/queries/collection.d.ts.map +1 -1
  185. package/dist/types/esm/queries/collectionImages.d.ts +40 -13
  186. package/dist/types/esm/queries/collectionImages.d.ts.map +1 -1
  187. package/dist/types/esm/queries/collectionTranslations.d.ts +34 -17
  188. package/dist/types/esm/queries/collectionTranslations.d.ts.map +1 -1
  189. package/dist/types/esm/queries/company.d.ts +10 -13
  190. package/dist/types/esm/queries/company.d.ts.map +1 -1
  191. package/dist/types/esm/queries/companyAlternativeNames.d.ts +27 -9
  192. package/dist/types/esm/queries/companyAlternativeNames.d.ts.map +1 -1
  193. package/dist/types/esm/queries/companyLogos.d.ts +19 -13
  194. package/dist/types/esm/queries/companyLogos.d.ts.map +1 -1
  195. package/dist/types/esm/queries/configuration.d.ts +11 -14
  196. package/dist/types/esm/queries/configuration.d.ts.map +1 -1
  197. package/dist/types/esm/queries/configurationCountries.d.ts +16 -3
  198. package/dist/types/esm/queries/configurationCountries.d.ts.map +1 -1
  199. package/dist/types/esm/queries/configurationJobs.d.ts +15 -3
  200. package/dist/types/esm/queries/configurationJobs.d.ts.map +1 -1
  201. package/dist/types/esm/queries/configurationLanguages.d.ts +16 -3
  202. package/dist/types/esm/queries/configurationLanguages.d.ts.map +1 -1
  203. package/dist/types/esm/queries/configurationPrimaryTranslations.d.ts +12 -3
  204. package/dist/types/esm/queries/configurationPrimaryTranslations.d.ts.map +1 -1
  205. package/dist/types/esm/queries/configurationTimezones.d.ts +15 -3
  206. package/dist/types/esm/queries/configurationTimezones.d.ts.map +1 -1
  207. package/dist/types/esm/queries/credit.d.ts +46 -4193
  208. package/dist/types/esm/queries/credit.d.ts.map +1 -1
  209. package/dist/types/esm/queries/discoverMovies.d.ts +2 -4
  210. package/dist/types/esm/queries/discoverMovies.d.ts.map +1 -1
  211. package/dist/types/esm/queries/discoverTv.d.ts +2 -4
  212. package/dist/types/esm/queries/discoverTv.d.ts.map +1 -1
  213. package/dist/types/esm/queries/episode.d.ts +236 -94
  214. package/dist/types/esm/queries/episode.d.ts.map +1 -1
  215. package/dist/types/esm/queries/episodeCredits.d.ts +168 -32
  216. package/dist/types/esm/queries/episodeCredits.d.ts.map +1 -1
  217. package/dist/types/esm/queries/episodeExternalIds.d.ts +139 -15
  218. package/dist/types/esm/queries/episodeExternalIds.d.ts.map +1 -1
  219. package/dist/types/esm/queries/episodeStills.d.ts +140 -5
  220. package/dist/types/esm/queries/episodeStills.d.ts.map +1 -1
  221. package/dist/types/esm/queries/episodeTranslations.d.ts +141 -19
  222. package/dist/types/esm/queries/episodeTranslations.d.ts.map +1 -1
  223. package/dist/types/esm/queries/episodeVideos.d.ts +142 -14
  224. package/dist/types/esm/queries/episodeVideos.d.ts.map +1 -1
  225. package/dist/types/esm/queries/find.d.ts +10 -1801
  226. package/dist/types/esm/queries/find.d.ts.map +1 -1
  227. package/dist/types/esm/queries/genres.d.ts +6 -6
  228. package/dist/types/esm/queries/genres.d.ts.map +1 -1
  229. package/dist/types/esm/queries/keyword.d.ts +3 -6
  230. package/dist/types/esm/queries/keyword.d.ts.map +1 -1
  231. package/dist/types/esm/queries/movie.d.ts +35 -3588
  232. package/dist/types/esm/queries/movie.d.ts.map +1 -1
  233. package/dist/types/esm/queries/movieAlternativeTitles.d.ts +1736 -5
  234. package/dist/types/esm/queries/movieAlternativeTitles.d.ts.map +1 -1
  235. package/dist/types/esm/queries/movieCredits.d.ts +1757 -32
  236. package/dist/types/esm/queries/movieCredits.d.ts.map +1 -1
  237. package/dist/types/esm/queries/movieExternalIds.d.ts +1738 -15
  238. package/dist/types/esm/queries/movieExternalIds.d.ts.map +1 -1
  239. package/dist/types/esm/queries/movieImages.d.ts +1756 -5
  240. package/dist/types/esm/queries/movieImages.d.ts.map +1 -1
  241. package/dist/types/esm/queries/movieKeywords.d.ts +1735 -5
  242. package/dist/types/esm/queries/movieKeywords.d.ts.map +1 -1
  243. package/dist/types/esm/queries/movieRecommendations.d.ts +1729 -1849
  244. package/dist/types/esm/queries/movieRecommendations.d.ts.map +1 -1
  245. package/dist/types/esm/queries/movieReleaseDates.d.ts +1742 -12
  246. package/dist/types/esm/queries/movieReleaseDates.d.ts.map +1 -1
  247. package/dist/types/esm/queries/movieReviews.d.ts +1729 -1849
  248. package/dist/types/esm/queries/movieReviews.d.ts.map +1 -1
  249. package/dist/types/esm/queries/movieSimilarMovies.d.ts +1729 -1849
  250. package/dist/types/esm/queries/movieSimilarMovies.d.ts.map +1 -1
  251. package/dist/types/esm/queries/movieTranslations.d.ts +1744 -19
  252. package/dist/types/esm/queries/movieTranslations.d.ts.map +1 -1
  253. package/dist/types/esm/queries/movieVideos.d.ts +1742 -14
  254. package/dist/types/esm/queries/movieVideos.d.ts.map +1 -1
  255. package/dist/types/esm/queries/movieWatchProviders.d.ts +3205 -1373
  256. package/dist/types/esm/queries/movieWatchProviders.d.ts.map +1 -1
  257. package/dist/types/esm/queries/network.d.ts +15 -24
  258. package/dist/types/esm/queries/network.d.ts.map +1 -1
  259. package/dist/types/esm/queries/networkAlternativeNames.d.ts +11 -9
  260. package/dist/types/esm/queries/networkAlternativeNames.d.ts.map +1 -1
  261. package/dist/types/esm/queries/networkLogos.d.ts +17 -13
  262. package/dist/types/esm/queries/networkLogos.d.ts.map +1 -1
  263. package/dist/types/esm/queries/person.d.ts +13 -41
  264. package/dist/types/esm/queries/person.d.ts.map +1 -1
  265. package/dist/types/esm/queries/personCombinedCredits.d.ts +233 -5
  266. package/dist/types/esm/queries/personCombinedCredits.d.ts.map +1 -1
  267. package/dist/types/esm/queries/personExternalIds.d.ts +203 -5
  268. package/dist/types/esm/queries/personExternalIds.d.ts.map +1 -1
  269. package/dist/types/esm/queries/personMovieCredits.d.ts +231 -5
  270. package/dist/types/esm/queries/personMovieCredits.d.ts.map +1 -1
  271. package/dist/types/esm/queries/personProfiles.d.ts +200 -5
  272. package/dist/types/esm/queries/personProfiles.d.ts.map +1 -1
  273. package/dist/types/esm/queries/personTranslations.d.ts +201 -19
  274. package/dist/types/esm/queries/personTranslations.d.ts.map +1 -1
  275. package/dist/types/esm/queries/personTvCredits.d.ts +232 -5
  276. package/dist/types/esm/queries/personTvCredits.d.ts.map +1 -1
  277. package/dist/types/esm/queries/rated.d.ts +6 -8
  278. package/dist/types/esm/queries/rated.d.ts.map +1 -1
  279. package/dist/types/esm/queries/review.d.ts +38 -24
  280. package/dist/types/esm/queries/review.d.ts.map +1 -1
  281. package/dist/types/esm/queries/search.d.ts +6 -8
  282. package/dist/types/esm/queries/search.d.ts.map +1 -1
  283. package/dist/types/esm/queries/season.d.ts +233 -279
  284. package/dist/types/esm/queries/season.d.ts.map +1 -1
  285. package/dist/types/esm/queries/seasonCredits.d.ts +152 -32
  286. package/dist/types/esm/queries/seasonCredits.d.ts.map +1 -1
  287. package/dist/types/esm/queries/seasonEpisodeCount.d.ts.map +1 -1
  288. package/dist/types/esm/queries/seasonExternalIds.d.ts +134 -5
  289. package/dist/types/esm/queries/seasonExternalIds.d.ts.map +1 -1
  290. package/dist/types/esm/queries/seasonPosters.d.ts +136 -5
  291. package/dist/types/esm/queries/seasonPosters.d.ts.map +1 -1
  292. package/dist/types/esm/queries/seasonTranslations.d.ts +137 -19
  293. package/dist/types/esm/queries/seasonTranslations.d.ts.map +1 -1
  294. package/dist/types/esm/queries/seasonVideos.d.ts +138 -14
  295. package/dist/types/esm/queries/seasonVideos.d.ts.map +1 -1
  296. package/dist/types/esm/queries/trending.d.ts +5 -7
  297. package/dist/types/esm/queries/trending.d.ts.map +1 -1
  298. package/dist/types/esm/queries/tv.d.ts +79 -10455
  299. package/dist/types/esm/queries/tv.d.ts.map +1 -1
  300. package/dist/types/esm/queries/tvAlternativeTitles.d.ts +1273 -10
  301. package/dist/types/esm/queries/tvAlternativeTitles.d.ts.map +1 -1
  302. package/dist/types/esm/queries/tvContentRatings.d.ts +1273 -8
  303. package/dist/types/esm/queries/tvContentRatings.d.ts.map +1 -1
  304. package/dist/types/esm/queries/tvCredits.d.ts +1294 -32
  305. package/dist/types/esm/queries/tvCredits.d.ts.map +1 -1
  306. package/dist/types/esm/queries/tvEpisodeGroups.d.ts +1281 -38
  307. package/dist/types/esm/queries/tvEpisodeGroups.d.ts.map +1 -1
  308. package/dist/types/esm/queries/tvExternalIds.d.ts +1280 -15
  309. package/dist/types/esm/queries/tvExternalIds.d.ts.map +1 -1
  310. package/dist/types/esm/queries/tvImages.d.ts +1294 -15
  311. package/dist/types/esm/queries/tvImages.d.ts.map +1 -1
  312. package/dist/types/esm/queries/tvKeywords.d.ts +1272 -8
  313. package/dist/types/esm/queries/tvKeywords.d.ts.map +1 -1
  314. package/dist/types/esm/queries/tvRecommendations.d.ts +1265 -5354
  315. package/dist/types/esm/queries/tvRecommendations.d.ts.map +1 -1
  316. package/dist/types/esm/queries/tvReviews.d.ts +1265 -5354
  317. package/dist/types/esm/queries/tvReviews.d.ts.map +1 -1
  318. package/dist/types/esm/queries/tvSimilarTvShows.d.ts +1265 -5354
  319. package/dist/types/esm/queries/tvSimilarTvShows.d.ts.map +1 -1
  320. package/dist/types/esm/queries/tvTranslations.d.ts +1280 -18
  321. package/dist/types/esm/queries/tvTranslations.d.ts.map +1 -1
  322. package/dist/types/esm/queries/tvVideos.d.ts +1280 -14
  323. package/dist/types/esm/queries/tvVideos.d.ts.map +1 -1
  324. package/dist/types/esm/queries/tvWatchProviders.d.ts +2174 -1371
  325. package/dist/types/esm/queries/tvWatchProviders.d.ts.map +1 -1
  326. package/dist/types/esm/queries/videoType.d.ts +2 -2
  327. package/dist/types/esm/queries/videoType.d.ts.map +1 -1
  328. package/dist/types/esm/types.d.ts +130 -295
  329. package/dist/types/esm/types.d.ts.map +1 -1
  330. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  331. package/package.json +11 -10
  332. package/src/__testUtils__/helpers/createMockLogger.ts +10 -0
  333. package/src/constants.ts +3 -0
  334. package/src/helpers/buildArgsResolver.ts +37 -0
  335. package/src/helpers/buildNoObjArgsResolver.ts +36 -0
  336. package/src/helpers/buildObjArgsResolver.ts +43 -0
  337. package/src/helpers/buildObjResolver.ts +48 -0
  338. package/src/helpers/getTvIdSeasonAndEpisode.ts +4 -4
  339. package/src/main.ts +5 -11
  340. package/src/queries/certifications.test.ts +13 -20
  341. package/src/queries/certifications.ts +21 -24
  342. package/src/queries/collection.test.ts +13 -16
  343. package/src/queries/collection.ts +20 -23
  344. package/src/queries/collectionImages.test.ts +16 -24
  345. package/src/queries/collectionImages.ts +16 -19
  346. package/src/queries/collectionTranslations.test.ts +29 -17
  347. package/src/queries/collectionTranslations.ts +19 -23
  348. package/src/queries/company.test.ts +13 -16
  349. package/src/queries/company.ts +20 -23
  350. package/src/queries/companyAlternativeNames.test.ts +34 -19
  351. package/src/queries/companyAlternativeNames.ts +19 -23
  352. package/src/queries/companyLogos.test.ts +29 -19
  353. package/src/queries/companyLogos.ts +13 -21
  354. package/src/queries/configuration.test.ts +12 -16
  355. package/src/queries/configuration.ts +11 -15
  356. package/src/queries/configurationCountries.test.ts +27 -17
  357. package/src/queries/configurationCountries.ts +19 -23
  358. package/src/queries/configurationJobs.test.ts +27 -17
  359. package/src/queries/configurationJobs.ts +19 -23
  360. package/src/queries/configurationLanguages.test.ts +27 -17
  361. package/src/queries/configurationLanguages.ts +19 -23
  362. package/src/queries/configurationPrimaryTranslations.test.ts +26 -17
  363. package/src/queries/configurationPrimaryTranslations.ts +14 -18
  364. package/src/queries/configurationTimezones.test.ts +27 -17
  365. package/src/queries/configurationTimezones.ts +19 -23
  366. package/src/queries/credit.test.ts +13 -16
  367. package/src/queries/credit.ts +12 -15
  368. package/src/queries/discoverMovies.test.ts +35 -81
  369. package/src/queries/discoverMovies.ts +21 -20
  370. package/src/queries/discoverTv.test.ts +29 -43
  371. package/src/queries/discoverTv.ts +16 -21
  372. package/src/queries/episode.test.ts +15 -16
  373. package/src/queries/episode.ts +34 -34
  374. package/src/queries/episodeCredits.test.ts +33 -55
  375. package/src/queries/episodeCredits.ts +29 -22
  376. package/src/queries/episodeExternalIds.test.ts +26 -28
  377. package/src/queries/episodeExternalIds.ts +35 -23
  378. package/src/queries/episodeStills.test.ts +26 -29
  379. package/src/queries/episodeStills.ts +32 -22
  380. package/src/queries/episodeTranslations.test.ts +24 -22
  381. package/src/queries/episodeTranslations.ts +29 -22
  382. package/src/queries/episodeVideos.test.ts +26 -29
  383. package/src/queries/episodeVideos.ts +29 -22
  384. package/src/queries/find.test.ts +13 -16
  385. package/src/queries/find.ts +25 -22
  386. package/src/queries/genres.test.ts +13 -22
  387. package/src/queries/genres.ts +13 -19
  388. package/src/queries/keyword.test.ts +13 -16
  389. package/src/queries/keyword.ts +12 -15
  390. package/src/queries/movie.test.ts +16 -20
  391. package/src/queries/movie.ts +20 -21
  392. package/src/queries/movieAlternativeTitles.test.ts +24 -30
  393. package/src/queries/movieAlternativeTitles.ts +34 -22
  394. package/src/queries/movieCredits.test.ts +27 -45
  395. package/src/queries/movieCredits.ts +24 -21
  396. package/src/queries/movieExternalIds.test.ts +22 -29
  397. package/src/queries/movieExternalIds.ts +26 -21
  398. package/src/queries/movieImages.test.ts +28 -46
  399. package/src/queries/movieImages.ts +26 -23
  400. package/src/queries/movieKeywords.test.ts +21 -26
  401. package/src/queries/movieKeywords.ts +24 -21
  402. package/src/queries/movieRecommendations.test.ts +27 -49
  403. package/src/queries/movieRecommendations.ts +27 -23
  404. package/src/queries/movieReleaseDates.test.ts +24 -28
  405. package/src/queries/movieReleaseDates.ts +25 -21
  406. package/src/queries/movieReviews.test.ts +32 -36
  407. package/src/queries/movieReviews.ts +28 -23
  408. package/src/queries/movieSimilarMovies.test.ts +25 -47
  409. package/src/queries/movieSimilarMovies.ts +28 -24
  410. package/src/queries/movieTranslations.test.ts +20 -25
  411. package/src/queries/movieTranslations.ts +24 -21
  412. package/src/queries/movieVideos.test.ts +22 -29
  413. package/src/queries/movieVideos.ts +24 -21
  414. package/src/queries/movieWatchProviders.test.ts +19 -27
  415. package/src/queries/movieWatchProviders.ts +26 -23
  416. package/src/queries/network.test.ts +13 -16
  417. package/src/queries/network.ts +20 -23
  418. package/src/queries/networkAlternativeNames.test.ts +16 -18
  419. package/src/queries/networkAlternativeNames.ts +19 -23
  420. package/src/queries/networkLogos.test.ts +14 -15
  421. package/src/queries/networkLogos.ts +13 -20
  422. package/src/queries/person.test.ts +16 -20
  423. package/src/queries/person.ts +20 -21
  424. package/src/queries/personCombinedCredits.test.ts +26 -26
  425. package/src/queries/personCombinedCredits.ts +27 -21
  426. package/src/queries/personExternalIds.test.ts +26 -26
  427. package/src/queries/personExternalIds.ts +27 -21
  428. package/src/queries/personMovieCredits.test.ts +26 -26
  429. package/src/queries/personMovieCredits.ts +27 -21
  430. package/src/queries/personProfiles.test.ts +22 -26
  431. package/src/queries/personProfiles.ts +25 -22
  432. package/src/queries/personTranslations.test.ts +22 -25
  433. package/src/queries/personTranslations.ts +24 -21
  434. package/src/queries/personTvCredits.test.ts +28 -28
  435. package/src/queries/personTvCredits.ts +26 -21
  436. package/src/queries/rated.test.ts +33 -69
  437. package/src/queries/rated.ts +31 -20
  438. package/src/queries/review.test.ts +13 -16
  439. package/src/queries/review.ts +27 -31
  440. package/src/queries/search.test.ts +53 -107
  441. package/src/queries/search.ts +42 -20
  442. package/src/queries/season.test.ts +15 -16
  443. package/src/queries/season.ts +32 -42
  444. package/src/queries/seasonCredits.test.ts +36 -45
  445. package/src/queries/seasonCredits.ts +27 -23
  446. package/src/queries/seasonEpisodeCount.ts +0 -4
  447. package/src/queries/seasonExternalIds.test.ts +25 -28
  448. package/src/queries/seasonExternalIds.ts +32 -22
  449. package/src/queries/seasonPosters.test.ts +25 -30
  450. package/src/queries/seasonPosters.ts +25 -22
  451. package/src/queries/seasonTranslations.test.ts +21 -27
  452. package/src/queries/seasonTranslations.ts +29 -22
  453. package/src/queries/seasonVideos.test.ts +23 -28
  454. package/src/queries/seasonVideos.ts +25 -22
  455. package/src/queries/trending.test.ts +28 -60
  456. package/src/queries/trending.ts +42 -20
  457. package/src/queries/tv.test.ts +16 -20
  458. package/src/queries/tv.ts +26 -34
  459. package/src/queries/tvAlternativeTitles.test.ts +25 -28
  460. package/src/queries/tvAlternativeTitles.ts +25 -22
  461. package/src/queries/tvContentRatings.test.ts +25 -28
  462. package/src/queries/tvContentRatings.ts +24 -22
  463. package/src/queries/tvCredits.test.ts +38 -44
  464. package/src/queries/tvCredits.ts +24 -21
  465. package/src/queries/tvEpisodeGroups.test.ts +25 -28
  466. package/src/queries/tvEpisodeGroups.ts +24 -21
  467. package/src/queries/tvExternalIds.test.ts +25 -28
  468. package/src/queries/tvExternalIds.ts +26 -21
  469. package/src/queries/tvImages.test.ts +36 -46
  470. package/src/queries/tvImages.ts +26 -23
  471. package/src/queries/tvKeywords.test.ts +24 -28
  472. package/src/queries/tvKeywords.ts +24 -21
  473. package/src/queries/tvRecommendations.test.ts +29 -49
  474. package/src/queries/tvRecommendations.ts +28 -22
  475. package/src/queries/tvReviews.test.ts +37 -48
  476. package/src/queries/tvReviews.ts +27 -23
  477. package/src/queries/tvSimilarTvShows.test.ts +37 -48
  478. package/src/queries/tvSimilarTvShows.ts +28 -24
  479. package/src/queries/tvTranslations.test.ts +24 -28
  480. package/src/queries/tvTranslations.ts +24 -21
  481. package/src/queries/tvVideos.test.ts +24 -28
  482. package/src/queries/tvVideos.ts +24 -21
  483. package/src/queries/tvWatchProviders.test.ts +24 -28
  484. package/src/queries/tvWatchProviders.ts +26 -23
  485. package/src/queries/videoType.ts +2 -2
  486. package/src/types.ts +228 -386
@@ -7,20 +7,22 @@ import { mockFetch } from 'fetch-mocked';
7
7
  import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
10
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
10
11
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
11
- import { type Context, type RawSeason, type RawSeasonWithAppendToResponse } from '../types.ts';
12
+ import { type Context } from '../types.ts';
12
13
  import { resolveSeasonCredits } from './seasonCredits.ts';
13
14
 
14
15
  const mockedFetch = mockFetch(jest.fn);
15
16
 
16
17
  describe('resolveSeasonCredits >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
18
  const seasonId = 1399;
20
19
 
21
- beforeAll(() => {
22
- restClient = createRestClient();
23
- });
20
+ const context = {
21
+ logger: createMockLogger(jest.fn),
22
+ restClient: createRestClient(),
23
+ setCacheMetadata: jest.fn(),
24
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
25
+ } as unknown as Context;
24
26
 
25
27
  beforeEach(() => {
26
28
  mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: seasonId, number: 1, type: 'credits' }), {
@@ -30,40 +32,37 @@ describe('resolveSeasonCredits >', () => {
30
32
 
31
33
  afterEach(async () => {
32
34
  mockedFetch.mockReset();
33
- await restClient.cache?.clear();
35
+ await context.restClient.cache?.clear();
36
+ jest.clearAllMocks();
34
37
  });
35
38
 
36
39
  describe('when fieldName is cast', () => {
40
+ const info = {
41
+ fieldName: 'cast',
42
+ } as GraphQLResolveInfo;
43
+
37
44
  it('should return the correct response', async () => {
38
- await expect(
39
- resolveSeasonCredits(
40
- seasonDetails as unknown as RawSeason,
41
- undefined,
42
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
43
- {
44
- fieldName: 'cast',
45
- } as GraphQLResolveInfo
46
- )
47
- ).resolves.toMatchSnapshot();
45
+ // @ts-expect-error minor nested type mismatch
46
+ await expect(resolveSeasonCredits(seasonDetails, undefined, context, info)).resolves.toMatchSnapshot();
48
47
  });
49
48
  });
50
49
 
51
50
  describe('when fieldName is crew', () => {
51
+ const info = {
52
+ fieldName: 'crew',
53
+ } as GraphQLResolveInfo;
54
+
52
55
  it('should return the correct response', async () => {
53
- await expect(
54
- resolveSeasonCredits(
55
- seasonDetails as unknown as RawSeason,
56
- undefined,
57
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
58
- {
59
- fieldName: 'crew',
60
- } as GraphQLResolveInfo
61
- )
62
- ).resolves.toMatchSnapshot();
56
+ // @ts-expect-error minor nested type mismatch
57
+ await expect(resolveSeasonCredits(seasonDetails, undefined, context, info)).resolves.toMatchSnapshot();
63
58
  });
64
59
  });
65
60
 
66
61
  describe('when raw season data has credits', () => {
62
+ const info = {
63
+ fieldName: 'crew',
64
+ } as GraphQLResolveInfo;
65
+
67
66
  it('should return the correct response', async () => {
68
67
  const seasonFetchMock = jest
69
68
  .fn<(...args: PlainArray) => Promise<FetchResponse>>()
@@ -73,18 +72,14 @@ describe('resolveSeasonCredits >', () => {
73
72
 
74
73
  await expect(
75
74
  resolveSeasonCredits(
76
- { ...seasonDetails, __headers: new Headers(), credits: rest } as unknown as RawSeasonWithAppendToResponse & {
77
- __headers?: Headers;
78
- },
75
+ // @ts-expect-error minor nested type mismatch
76
+ { ...seasonDetails, __headers: new Headers(), credits: rest },
79
77
  undefined,
80
78
  {
79
+ ...context,
81
80
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
82
- setCacheMetadata,
83
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
84
- } as unknown as Context,
85
- {
86
- fieldName: 'crew',
87
- } as GraphQLResolveInfo
81
+ },
82
+ info
88
83
  )
89
84
  ).resolves.toMatchSnapshot();
90
85
  });
@@ -97,18 +92,14 @@ describe('resolveSeasonCredits >', () => {
97
92
  const { id, ...rest } = seasonCredits;
98
93
 
99
94
  await resolveSeasonCredits(
100
- { ...seasonDetails, __headers: new Headers(), credits: rest } as unknown as RawSeasonWithAppendToResponse & {
101
- __headers?: Headers;
102
- },
95
+ // @ts-expect-error minor nested type mismatch
96
+ { ...seasonDetails, __headers: new Headers(), credits: rest },
103
97
  undefined,
104
98
  {
99
+ ...context,
105
100
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
106
- setCacheMetadata,
107
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
108
- } as unknown as Context,
109
- {
110
- fieldName: 'crew',
111
- } as GraphQLResolveInfo
101
+ },
102
+ info
112
103
  );
113
104
 
114
105
  expect(seasonFetchMock).not.toHaveBeenCalled();
@@ -1,18 +1,26 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
- import { CREDITS, SEASON, TV } from '../constants.ts';
3
- import { type Context, type RawSeasonCredits, type RawSeasonWithAppendToResponse } from '../types.ts';
1
+ import { snakeCase } from 'lodash-es';
2
+ import { CREDITS, SEASON } from '../constants.ts';
3
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
4
+ import { type EnrichedRawSeason, type EnrichedRawSeasonWithAppendToResponse, type RawSeasonCredits } from '../types.ts';
4
5
 
5
- export const resolveSeasonCredits = async (
6
- obj: RawSeasonWithAppendToResponse & { __headers?: Headers },
7
- _args: undefined,
8
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
9
- { fieldName, fieldNodes }: GraphQLResolveInfo
10
- ) => {
11
- const typedFieldName = fieldName as 'cast' | 'crew';
6
+ const isEnrichedRawSeasonWithCredits = (
7
+ obj: EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers })
8
+ ): obj is EnrichedRawSeasonWithAppendToResponse & { __headers: Headers } => CREDITS in obj && '__headers' in obj;
12
9
 
13
- if (obj.credits && obj.__headers) {
14
- setCacheMetadata(`${SEASON}.${fieldName}`, obj.__headers);
15
- return obj.credits[typedFieldName];
10
+ export const resolveSeasonCredits = buildObjResolver<
11
+ EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers }),
12
+ RawSeasonCredits['cast'] | RawSeasonCredits['crew']
13
+ >(SEASON, async (obj, ctx, info) => {
14
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
15
+ const { fieldName } = info;
16
+ const typedFieldName = snakeCase(fieldName) as 'cast' | 'crew';
17
+
18
+ if (isEnrichedRawSeasonWithCredits(obj)) {
19
+ return {
20
+ data: obj.credits?.[typedFieldName],
21
+ headers: obj.__headers,
22
+ source: 'parentNode',
23
+ };
16
24
  }
17
25
 
18
26
  const { data, errors, headers } = await restClient.season<RawSeasonCredits>(
@@ -22,13 +30,9 @@ export const resolveSeasonCredits = async (
22
30
  { requestID, tmdbGuestSessionId }
23
31
  );
24
32
 
25
- if (errors?.length) {
26
- throw new GraphQLError(
27
- `Failed to resolve ${TV} show ${obj.tv_show_id} ${SEASON} ${obj.season_number} ${fieldName}.`,
28
- { nodes: fieldNodes, originalError: errors[0] }
29
- );
30
- }
31
-
32
- setCacheMetadata(`${SEASON}.${fieldName}`, headers);
33
- return data![typedFieldName];
34
- };
33
+ return {
34
+ data: data?.[typedFieldName],
35
+ errors,
36
+ headers,
37
+ };
38
+ });
@@ -1,9 +1,5 @@
1
1
  import { type RawSeason } from '../types.ts';
2
2
 
3
3
  export const resolveSeasonEpisodeCount = (obj: RawSeason) => {
4
- if (obj.episode_count) {
5
- return obj.episode_count;
6
- }
7
-
8
4
  return obj.episodes?.length ?? 0;
9
5
  };
@@ -6,42 +6,43 @@ import seasonExternalIds from '@tmdb-graphql-api/test-utils/responses/themoviedb
6
6
  import { mockFetch } from 'fetch-mocked';
7
7
  import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
+ import { snakeCase } from 'lodash-es';
9
10
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
11
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
10
12
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
11
- import { type Context, type RawSeason, type RawSeasonWithAppendToResponse } from '../types.ts';
13
+ import { EXTERNAL_IDS } from '../constants.ts';
14
+ import { type Context } from '../types.ts';
12
15
  import { resolveSeasonExternalIds } from './seasonExternalIds.ts';
13
16
 
14
17
  const mockedFetch = mockFetch(jest.fn);
15
18
 
16
19
  describe('resolveSeasonExternalIds >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
20
  const seasonId = 1399;
20
21
 
21
- beforeAll(() => {
22
- restClient = createRestClient();
23
- });
22
+ const context = {
23
+ logger: createMockLogger(jest.fn),
24
+ restClient: createRestClient(),
25
+ setCacheMetadata: jest.fn(),
26
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
27
+ } as unknown as Context;
28
+
29
+ const info = {} as GraphQLResolveInfo;
24
30
 
25
31
  beforeEach(() => {
26
- mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: seasonId, number: 1, type: 'external_ids' }), {
32
+ mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: seasonId, number: 1, type: snakeCase(EXTERNAL_IDS) }), {
27
33
  body: seasonExternalIds,
28
34
  });
29
35
  });
30
36
 
31
37
  afterEach(async () => {
32
38
  mockedFetch.mockReset();
33
- await restClient.cache?.clear();
39
+ await context.restClient.cache?.clear();
40
+ jest.clearAllMocks();
34
41
  });
35
42
 
36
43
  it('should return the season external IDs', async () => {
37
- await expect(
38
- resolveSeasonExternalIds(
39
- seasonDetails as unknown as RawSeason,
40
- undefined,
41
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
42
- {} as GraphQLResolveInfo
43
- )
44
- ).resolves.toMatchSnapshot();
44
+ // @ts-expect-error minor type mismatch
45
+ await expect(resolveSeasonExternalIds(seasonDetails, undefined, context, info)).resolves.toMatchSnapshot();
45
46
  });
46
47
 
47
48
  describe('when raw season data has external IDs', () => {
@@ -54,20 +55,18 @@ describe('resolveSeasonExternalIds >', () => {
54
55
 
55
56
  await expect(
56
57
  resolveSeasonExternalIds(
58
+ // @ts-expect-error minor type mismatch
57
59
  {
58
60
  ...seasonDetails,
59
61
  __headers: new Headers(),
60
62
  external_ids: rest,
61
- } as unknown as RawSeasonWithAppendToResponse & {
62
- __headers?: Headers;
63
63
  },
64
64
  undefined,
65
65
  {
66
+ ...context,
66
67
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
67
- setCacheMetadata,
68
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
69
- } as unknown as Context,
70
- {} as GraphQLResolveInfo
68
+ },
69
+ info
71
70
  )
72
71
  ).resolves.toMatchSnapshot();
73
72
  });
@@ -80,20 +79,18 @@ describe('resolveSeasonExternalIds >', () => {
80
79
  const { id, ...rest } = seasonExternalIds;
81
80
 
82
81
  await resolveSeasonExternalIds(
82
+ // @ts-expect-error minor type mismatch
83
83
  {
84
84
  ...seasonDetails,
85
85
  __headers: new Headers(),
86
86
  external_ids: rest,
87
- } as unknown as RawSeasonWithAppendToResponse & {
88
- __headers?: Headers;
89
87
  },
90
88
  undefined,
91
89
  {
90
+ ...context,
92
91
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
93
- setCacheMetadata,
94
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
95
- } as unknown as Context,
96
- {} as GraphQLResolveInfo
92
+ },
93
+ info
97
94
  );
98
95
 
99
96
  expect(seasonFetchMock).not.toHaveBeenCalled();
@@ -1,17 +1,30 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
1
  import { snakeCase } from 'lodash-es';
3
- import { EXTERNAL_IDS, SEASON, TV } from '../constants.ts';
4
- import { type Context, type RawSeasonExternalIds, type RawSeasonWithAppendToResponse } from '../types.ts';
2
+ import type { Except } from 'type-fest';
3
+ import { EXTERNAL_IDS, SEASON } from '../constants.ts';
4
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
5
+ import {
6
+ type EnrichedRawSeason,
7
+ type EnrichedRawSeasonWithAppendToResponse,
8
+ type RawSeasonExternalIds,
9
+ } from '../types.ts';
5
10
 
6
- export const resolveSeasonExternalIds = async (
7
- obj: RawSeasonWithAppendToResponse & { __headers?: Headers },
8
- _args: undefined,
9
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
10
- { fieldNodes }: GraphQLResolveInfo
11
- ) => {
12
- if (obj.external_ids && obj.__headers) {
13
- setCacheMetadata(`${SEASON}.${EXTERNAL_IDS}`, obj.__headers);
14
- return obj.external_ids;
11
+ const isEnrichedRawSeasonWithExternalIds = (
12
+ obj: EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers })
13
+ ): obj is EnrichedRawSeasonWithAppendToResponse & { __headers: Headers } =>
14
+ snakeCase(EXTERNAL_IDS) in obj && '__headers' in obj;
15
+
16
+ export const resolveSeasonExternalIds = buildObjResolver<
17
+ EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers }),
18
+ Except<RawSeasonExternalIds, 'id'>
19
+ >(SEASON, async (obj, ctx) => {
20
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
21
+
22
+ if (isEnrichedRawSeasonWithExternalIds(obj)) {
23
+ return {
24
+ data: obj.external_ids,
25
+ headers: obj.__headers,
26
+ source: 'parentNode',
27
+ };
15
28
  }
16
29
 
17
30
  const { data, errors, headers } = await restClient.season<RawSeasonExternalIds>(
@@ -21,14 +34,11 @@ export const resolveSeasonExternalIds = async (
21
34
  { requestID, tmdbGuestSessionId }
22
35
  );
23
36
 
24
- if (errors?.length) {
25
- throw new GraphQLError(
26
- `Failed to resolve ${TV} show ${obj.tv_show_id} ${SEASON} ${obj.season_number} ${EXTERNAL_IDS}.`,
27
- { nodes: fieldNodes, originalError: errors[0] }
28
- );
29
- }
37
+ const { id: movieId, ...rest } = data ?? {};
30
38
 
31
- setCacheMetadata(`${SEASON}.${EXTERNAL_IDS}`, headers);
32
- const { id: movieId, ...rest } = data!;
33
- return rest;
34
- };
39
+ return {
40
+ data: rest,
41
+ errors,
42
+ headers,
43
+ };
44
+ });
@@ -7,40 +7,39 @@ import { mockFetch } from 'fetch-mocked';
7
7
  import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
10
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
10
11
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
11
- import { type Context, type RawSeason, type RawSeasonWithAppendToResponse } from '../types.ts';
12
+ import { IMAGES } from '../constants.ts';
13
+ import { type Context } from '../types.ts';
12
14
  import { resolveSeasonPosters } from './seasonPosters.ts';
13
15
 
14
16
  const mockedFetch = mockFetch(jest.fn);
15
17
 
16
18
  describe('resolveSeasonPosters >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
+ const context = {
20
+ logger: createMockLogger(jest.fn),
21
+ restClient: createRestClient(),
22
+ setCacheMetadata: jest.fn(),
23
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
24
+ } as unknown as Context;
19
25
 
20
- beforeAll(() => {
21
- restClient = createRestClient();
22
- });
26
+ const info = {} as GraphQLResolveInfo;
23
27
 
24
28
  beforeEach(() => {
25
- mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: 1399, number: 1, type: 'images' }), {
29
+ mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: 1399, number: 1, type: IMAGES }), {
26
30
  body: seasonPosters,
27
31
  });
28
32
  });
29
33
 
30
34
  afterEach(async () => {
31
35
  mockedFetch.mockReset();
32
- await restClient.cache?.clear();
36
+ await context.restClient.cache?.clear();
37
+ jest.clearAllMocks();
33
38
  });
34
39
 
35
40
  it('should return the season posters', async () => {
36
- await expect(
37
- resolveSeasonPosters(
38
- seasonDetails as unknown as RawSeason,
39
- undefined,
40
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
41
- {} as GraphQLResolveInfo
42
- )
43
- ).resolves.toMatchSnapshot();
41
+ // @ts-expect-error minor nested type mismatch
42
+ await expect(resolveSeasonPosters(seasonDetails, undefined, context, info)).resolves.toMatchSnapshot();
44
43
  });
45
44
 
46
45
  describe('when raw season data has images', () => {
@@ -53,16 +52,14 @@ describe('resolveSeasonPosters >', () => {
53
52
 
54
53
  await expect(
55
54
  resolveSeasonPosters(
56
- { ...seasonDetails, __headers: new Headers(), images: rest } as unknown as RawSeasonWithAppendToResponse & {
57
- __headers?: Headers;
58
- },
55
+ // @ts-expect-error minor nested type mismatch
56
+ { ...seasonDetails, __headers: new Headers(), images: rest },
59
57
  undefined,
60
58
  {
59
+ ...context,
61
60
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
62
- setCacheMetadata,
63
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
64
- } as unknown as Context,
65
- {} as GraphQLResolveInfo
61
+ },
62
+ info
66
63
  )
67
64
  ).resolves.toMatchSnapshot();
68
65
  });
@@ -75,16 +72,14 @@ describe('resolveSeasonPosters >', () => {
75
72
  const { id, ...rest } = seasonPosters;
76
73
 
77
74
  await resolveSeasonPosters(
78
- { ...seasonDetails, __headers: new Headers(), images: rest } as unknown as RawSeasonWithAppendToResponse & {
79
- __headers?: Headers;
80
- },
75
+ // @ts-expect-error minor nested type mismatch
76
+ { ...seasonDetails, __headers: new Headers(), images: rest },
81
77
  undefined,
82
78
  {
79
+ ...context,
83
80
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
84
- setCacheMetadata,
85
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
86
- } as unknown as Context,
87
- {} as GraphQLResolveInfo
81
+ },
82
+ info
88
83
  );
89
84
 
90
85
  expect(seasonFetchMock).not.toHaveBeenCalled();
@@ -1,16 +1,23 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
- import { IMAGES, POSTERS, SEASON, TV } from '../constants.ts';
3
- import { type Context, type RawSeasonPosters, type RawSeasonWithAppendToResponse } from '../types.ts';
1
+ import { IMAGES, SEASON } from '../constants.ts';
2
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
3
+ import { type EnrichedRawSeason, type EnrichedRawSeasonWithAppendToResponse, type RawSeasonPosters } from '../types.ts';
4
4
 
5
- export const resolveSeasonPosters = async (
6
- obj: RawSeasonWithAppendToResponse & { __headers?: Headers },
7
- _args: undefined,
8
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
9
- { fieldNodes }: GraphQLResolveInfo
10
- ) => {
11
- if (obj.images && obj.__headers) {
12
- setCacheMetadata(`${SEASON}.${POSTERS}`, obj.__headers);
13
- return obj.images.posters;
5
+ const isEnrichedRawSeasonWithPosters = (
6
+ obj: EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers })
7
+ ): obj is EnrichedRawSeasonWithAppendToResponse & { __headers: Headers } => IMAGES in obj && '__headers' in obj;
8
+
9
+ export const resolveSeasonPosters = buildObjResolver<
10
+ EnrichedRawSeason | (EnrichedRawSeasonWithAppendToResponse & { __headers?: Headers }),
11
+ RawSeasonPosters['posters']
12
+ >(SEASON, async (obj, ctx) => {
13
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
14
+
15
+ if (isEnrichedRawSeasonWithPosters(obj)) {
16
+ return {
17
+ data: obj.images?.posters,
18
+ headers: obj.__headers,
19
+ source: 'parentNode',
20
+ };
14
21
  }
15
22
 
16
23
  const { data, errors, headers } = await restClient.season<RawSeasonPosters>(
@@ -20,13 +27,9 @@ export const resolveSeasonPosters = async (
20
27
  { requestID, tmdbGuestSessionId }
21
28
  );
22
29
 
23
- if (errors?.length) {
24
- throw new GraphQLError(
25
- `Failed to resolve ${TV} show ${obj.tv_show_id} ${SEASON} ${obj.season_number} ${POSTERS}.`,
26
- { nodes: fieldNodes, originalError: errors[0] }
27
- );
28
- }
29
-
30
- setCacheMetadata(`${SEASON}.${POSTERS}`, headers);
31
- return data!.posters;
32
- };
30
+ return {
31
+ data: data?.posters,
32
+ errors,
33
+ headers,
34
+ };
35
+ });
@@ -7,19 +7,22 @@ import { mockFetch } from 'fetch-mocked';
7
7
  import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
10
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
10
11
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
11
- import { type Context, type RawSeason, type RawSeasonWithAppendToResponse } from '../types.ts';
12
+ import { type Context } from '../types.ts';
12
13
  import { resolveSeasonTranslations } from './seasonTranslations.ts';
13
14
 
14
15
  const mockedFetch = mockFetch(jest.fn);
15
16
 
16
17
  describe('resolveSeasonTranslations >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
18
+ const context = {
19
+ logger: createMockLogger(jest.fn),
20
+ restClient: createRestClient(),
21
+ setCacheMetadata: jest.fn(),
22
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
23
+ } as unknown as Context;
19
24
 
20
- beforeAll(() => {
21
- restClient = createRestClient();
22
- });
25
+ const info = {} as GraphQLResolveInfo;
23
26
 
24
27
  beforeEach(() => {
25
28
  mockedFetch.mockGetOnce(buildEndpoint(SEASON_PATH, { id: 1399, number: 1, type: 'translations' }), {
@@ -29,18 +32,13 @@ describe('resolveSeasonTranslations >', () => {
29
32
 
30
33
  afterEach(async () => {
31
34
  mockedFetch.mockReset();
32
- await restClient.cache?.clear();
35
+ await context.restClient.cache?.clear();
36
+ jest.clearAllMocks();
33
37
  });
34
38
 
35
39
  it('should return the season translations', async () => {
36
- await expect(
37
- resolveSeasonTranslations(
38
- seasonDetails as unknown as RawSeason,
39
- undefined,
40
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
41
- {} as GraphQLResolveInfo
42
- )
43
- ).resolves.toMatchSnapshot();
40
+ // @ts-expect-error minor nested type mismatch
41
+ await expect(resolveSeasonTranslations(seasonDetails, undefined, context, info)).resolves.toMatchSnapshot();
44
42
  });
45
43
 
46
44
  describe('when raw season data has translations', () => {
@@ -53,20 +51,18 @@ describe('resolveSeasonTranslations >', () => {
53
51
 
54
52
  await expect(
55
53
  resolveSeasonTranslations(
54
+ // @ts-expect-error minor nested type mismatch
56
55
  {
57
56
  ...seasonDetails,
58
57
  __headers: new Headers(),
59
58
  translations: rest,
60
- } as unknown as RawSeasonWithAppendToResponse & {
61
- __headers?: Headers;
62
59
  },
63
60
  undefined,
64
61
  {
62
+ ...context,
65
63
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
66
- setCacheMetadata,
67
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
68
- } as unknown as Context,
69
- {} as GraphQLResolveInfo
64
+ },
65
+ info
70
66
  )
71
67
  ).resolves.toMatchSnapshot();
72
68
  });
@@ -79,20 +75,18 @@ describe('resolveSeasonTranslations >', () => {
79
75
  const { id, ...rest } = seasonTranslations;
80
76
 
81
77
  await resolveSeasonTranslations(
78
+ // @ts-expect-error minor nested type mismatch
82
79
  {
83
80
  ...seasonDetails,
84
81
  __headers: new Headers(),
85
82
  translations: rest,
86
- } as unknown as RawSeasonWithAppendToResponse & {
87
- __headers?: Headers;
88
83
  },
89
84
  undefined,
90
85
  {
86
+ ...context,
91
87
  restClient: { season: seasonFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
92
- setCacheMetadata,
93
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
94
- } as unknown as Context,
95
- {} as GraphQLResolveInfo
88
+ },
89
+ info
96
90
  );
97
91
 
98
92
  expect(seasonFetchMock).not.toHaveBeenCalled();