@tmdb-graphql-api/resolvers 0.0.34 → 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 (489) 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 +506 -413
  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 +4 -3
  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 +61 -3397
  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 +9 -12
  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 -4197
  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 +235 -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 +2 -5
  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 +1755 -30
  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 +1728 -1848
  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 +1728 -1848
  86. package/dist/types/cjs/queries/movieReviews.d.cts.map +1 -1
  87. package/dist/types/cjs/queries/movieSimilarMovies.d.cts +1728 -1848
  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 +1741 -13
  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 +14 -23
  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 +37 -23
  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 -282
  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 -10478
  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 +1292 -30
  143. package/dist/types/cjs/queries/tvCredits.d.cts.map +1 -1
  144. package/dist/types/cjs/queries/tvEpisodeGroups.d.cts +1280 -37
  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 +1271 -7
  151. package/dist/types/cjs/queries/tvKeywords.d.cts.map +1 -1
  152. package/dist/types/cjs/queries/tvRecommendations.d.cts +1264 -5365
  153. package/dist/types/cjs/queries/tvRecommendations.d.cts.map +1 -1
  154. package/dist/types/cjs/queries/tvReviews.d.cts +1264 -5365
  155. package/dist/types/cjs/queries/tvReviews.d.cts.map +1 -1
  156. package/dist/types/cjs/queries/tvSimilarTvShows.d.cts +1264 -5365
  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 +1279 -13
  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 -297
  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 +4 -3
  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 +61 -3397
  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 +9 -12
  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 -4197
  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 +235 -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 +2 -5
  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 +1755 -30
  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 +1728 -1848
  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 +1728 -1848
  248. package/dist/types/esm/queries/movieReviews.d.ts.map +1 -1
  249. package/dist/types/esm/queries/movieSimilarMovies.d.ts +1728 -1848
  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 +1741 -13
  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 +14 -23
  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 +37 -23
  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 -282
  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 -10478
  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 +1292 -30
  305. package/dist/types/esm/queries/tvCredits.d.ts.map +1 -1
  306. package/dist/types/esm/queries/tvEpisodeGroups.d.ts +1280 -37
  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 +1271 -7
  313. package/dist/types/esm/queries/tvKeywords.d.ts.map +1 -1
  314. package/dist/types/esm/queries/tvRecommendations.d.ts +1264 -5365
  315. package/dist/types/esm/queries/tvRecommendations.d.ts.map +1 -1
  316. package/dist/types/esm/queries/tvReviews.d.ts +1264 -5365
  317. package/dist/types/esm/queries/tvReviews.d.ts.map +1 -1
  318. package/dist/types/esm/queries/tvSimilarTvShows.d.ts +1264 -5365
  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 +1279 -13
  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 -297
  329. package/dist/types/esm/types.d.ts.map +1 -1
  330. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  331. package/package.json +12 -11
  332. package/src/__testUtils__/helpers/createMockLogger.ts +10 -0
  333. package/src/constants.ts +3 -0
  334. package/src/helpers/__snapshots__/typePropNames.test.ts.snap +0 -2
  335. package/src/helpers/buildArgsResolver.ts +37 -0
  336. package/src/helpers/buildNoObjArgsResolver.ts +36 -0
  337. package/src/helpers/buildObjArgsResolver.ts +43 -0
  338. package/src/helpers/buildObjResolver.ts +48 -0
  339. package/src/helpers/getTvIdSeasonAndEpisode.ts +12 -8
  340. package/src/main.ts +5 -11
  341. package/src/queries/__snapshots__/episode.test.ts.snap +1 -2
  342. package/src/queries/__snapshots__/season.test.ts.snap +1 -2
  343. package/src/queries/certifications.test.ts +13 -20
  344. package/src/queries/certifications.ts +21 -24
  345. package/src/queries/collection.test.ts +13 -16
  346. package/src/queries/collection.ts +20 -23
  347. package/src/queries/collectionImages.test.ts +16 -24
  348. package/src/queries/collectionImages.ts +16 -19
  349. package/src/queries/collectionTranslations.test.ts +29 -17
  350. package/src/queries/collectionTranslations.ts +19 -23
  351. package/src/queries/company.test.ts +13 -16
  352. package/src/queries/company.ts +20 -23
  353. package/src/queries/companyAlternativeNames.test.ts +34 -19
  354. package/src/queries/companyAlternativeNames.ts +19 -23
  355. package/src/queries/companyLogos.test.ts +29 -19
  356. package/src/queries/companyLogos.ts +13 -21
  357. package/src/queries/configuration.test.ts +12 -16
  358. package/src/queries/configuration.ts +11 -15
  359. package/src/queries/configurationCountries.test.ts +27 -17
  360. package/src/queries/configurationCountries.ts +19 -23
  361. package/src/queries/configurationJobs.test.ts +27 -17
  362. package/src/queries/configurationJobs.ts +19 -23
  363. package/src/queries/configurationLanguages.test.ts +27 -17
  364. package/src/queries/configurationLanguages.ts +19 -23
  365. package/src/queries/configurationPrimaryTranslations.test.ts +26 -17
  366. package/src/queries/configurationPrimaryTranslations.ts +14 -18
  367. package/src/queries/configurationTimezones.test.ts +27 -17
  368. package/src/queries/configurationTimezones.ts +19 -23
  369. package/src/queries/credit.test.ts +13 -16
  370. package/src/queries/credit.ts +12 -15
  371. package/src/queries/discoverMovies.test.ts +35 -81
  372. package/src/queries/discoverMovies.ts +21 -20
  373. package/src/queries/discoverTv.test.ts +29 -43
  374. package/src/queries/discoverTv.ts +16 -21
  375. package/src/queries/episode.test.ts +16 -17
  376. package/src/queries/episode.ts +36 -36
  377. package/src/queries/episodeCredits.test.ts +35 -67
  378. package/src/queries/episodeCredits.ts +29 -22
  379. package/src/queries/episodeExternalIds.test.ts +27 -39
  380. package/src/queries/episodeExternalIds.ts +35 -23
  381. package/src/queries/episodeStills.test.ts +28 -41
  382. package/src/queries/episodeStills.ts +32 -22
  383. package/src/queries/episodeTranslations.test.ts +26 -34
  384. package/src/queries/episodeTranslations.ts +29 -22
  385. package/src/queries/episodeVideos.test.ts +28 -41
  386. package/src/queries/episodeVideos.ts +29 -22
  387. package/src/queries/find.test.ts +13 -16
  388. package/src/queries/find.ts +25 -22
  389. package/src/queries/genres.test.ts +13 -22
  390. package/src/queries/genres.ts +13 -19
  391. package/src/queries/keyword.test.ts +13 -16
  392. package/src/queries/keyword.ts +12 -15
  393. package/src/queries/movie.test.ts +16 -20
  394. package/src/queries/movie.ts +20 -21
  395. package/src/queries/movieAlternativeTitles.test.ts +24 -30
  396. package/src/queries/movieAlternativeTitles.ts +34 -22
  397. package/src/queries/movieCredits.test.ts +27 -45
  398. package/src/queries/movieCredits.ts +24 -21
  399. package/src/queries/movieExternalIds.test.ts +22 -29
  400. package/src/queries/movieExternalIds.ts +26 -21
  401. package/src/queries/movieImages.test.ts +28 -46
  402. package/src/queries/movieImages.ts +26 -23
  403. package/src/queries/movieKeywords.test.ts +21 -26
  404. package/src/queries/movieKeywords.ts +24 -21
  405. package/src/queries/movieRecommendations.test.ts +27 -49
  406. package/src/queries/movieRecommendations.ts +27 -23
  407. package/src/queries/movieReleaseDates.test.ts +24 -28
  408. package/src/queries/movieReleaseDates.ts +25 -21
  409. package/src/queries/movieReviews.test.ts +32 -36
  410. package/src/queries/movieReviews.ts +28 -23
  411. package/src/queries/movieSimilarMovies.test.ts +25 -47
  412. package/src/queries/movieSimilarMovies.ts +28 -24
  413. package/src/queries/movieTranslations.test.ts +20 -25
  414. package/src/queries/movieTranslations.ts +24 -21
  415. package/src/queries/movieVideos.test.ts +22 -29
  416. package/src/queries/movieVideos.ts +24 -21
  417. package/src/queries/movieWatchProviders.test.ts +19 -27
  418. package/src/queries/movieWatchProviders.ts +26 -23
  419. package/src/queries/network.test.ts +13 -16
  420. package/src/queries/network.ts +20 -23
  421. package/src/queries/networkAlternativeNames.test.ts +16 -18
  422. package/src/queries/networkAlternativeNames.ts +19 -23
  423. package/src/queries/networkLogos.test.ts +14 -15
  424. package/src/queries/networkLogos.ts +13 -20
  425. package/src/queries/person.test.ts +16 -20
  426. package/src/queries/person.ts +20 -21
  427. package/src/queries/personCombinedCredits.test.ts +26 -26
  428. package/src/queries/personCombinedCredits.ts +27 -21
  429. package/src/queries/personExternalIds.test.ts +26 -26
  430. package/src/queries/personExternalIds.ts +27 -21
  431. package/src/queries/personMovieCredits.test.ts +26 -26
  432. package/src/queries/personMovieCredits.ts +27 -21
  433. package/src/queries/personProfiles.test.ts +22 -26
  434. package/src/queries/personProfiles.ts +25 -22
  435. package/src/queries/personTranslations.test.ts +22 -25
  436. package/src/queries/personTranslations.ts +24 -21
  437. package/src/queries/personTvCredits.test.ts +28 -28
  438. package/src/queries/personTvCredits.ts +26 -21
  439. package/src/queries/rated.test.ts +33 -69
  440. package/src/queries/rated.ts +31 -20
  441. package/src/queries/review.test.ts +13 -16
  442. package/src/queries/review.ts +27 -31
  443. package/src/queries/search.test.ts +53 -107
  444. package/src/queries/search.ts +42 -20
  445. package/src/queries/season.test.ts +16 -17
  446. package/src/queries/season.ts +34 -44
  447. package/src/queries/seasonCredits.test.ts +36 -45
  448. package/src/queries/seasonCredits.ts +27 -23
  449. package/src/queries/seasonEpisodeCount.ts +0 -4
  450. package/src/queries/seasonExternalIds.test.ts +25 -28
  451. package/src/queries/seasonExternalIds.ts +32 -22
  452. package/src/queries/seasonPosters.test.ts +25 -30
  453. package/src/queries/seasonPosters.ts +25 -22
  454. package/src/queries/seasonTranslations.test.ts +21 -27
  455. package/src/queries/seasonTranslations.ts +29 -22
  456. package/src/queries/seasonVideos.test.ts +23 -28
  457. package/src/queries/seasonVideos.ts +25 -22
  458. package/src/queries/trending.test.ts +28 -60
  459. package/src/queries/trending.ts +42 -20
  460. package/src/queries/tv.test.ts +16 -20
  461. package/src/queries/tv.ts +26 -34
  462. package/src/queries/tvAlternativeTitles.test.ts +25 -28
  463. package/src/queries/tvAlternativeTitles.ts +25 -22
  464. package/src/queries/tvContentRatings.test.ts +25 -28
  465. package/src/queries/tvContentRatings.ts +24 -22
  466. package/src/queries/tvCredits.test.ts +38 -44
  467. package/src/queries/tvCredits.ts +24 -21
  468. package/src/queries/tvEpisodeGroups.test.ts +25 -28
  469. package/src/queries/tvEpisodeGroups.ts +24 -21
  470. package/src/queries/tvExternalIds.test.ts +25 -28
  471. package/src/queries/tvExternalIds.ts +26 -21
  472. package/src/queries/tvImages.test.ts +36 -46
  473. package/src/queries/tvImages.ts +26 -23
  474. package/src/queries/tvKeywords.test.ts +24 -28
  475. package/src/queries/tvKeywords.ts +24 -21
  476. package/src/queries/tvRecommendations.test.ts +29 -49
  477. package/src/queries/tvRecommendations.ts +28 -22
  478. package/src/queries/tvReviews.test.ts +37 -48
  479. package/src/queries/tvReviews.ts +27 -23
  480. package/src/queries/tvSimilarTvShows.test.ts +37 -48
  481. package/src/queries/tvSimilarTvShows.ts +28 -24
  482. package/src/queries/tvTranslations.test.ts +24 -28
  483. package/src/queries/tvTranslations.ts +24 -21
  484. package/src/queries/tvVideos.test.ts +24 -28
  485. package/src/queries/tvVideos.ts +24 -21
  486. package/src/queries/tvWatchProviders.test.ts +24 -28
  487. package/src/queries/tvWatchProviders.ts +26 -23
  488. package/src/queries/videoType.ts +2 -2
  489. package/src/types.ts +226 -391
@@ -1,11 +1,10 @@
1
1
  import { Core } from '@cachemap/core';
2
2
  import { init as map } from '@cachemap/map';
3
3
  import { init as reaper } from '@cachemap/reaper';
4
- import { type Getters, makeConnectionResolver } from '@graphql-box/connection-resolver';
4
+ import { type CreateResourceResolver, type Getters, makeConnectionResolver } from '@graphql-box/connection-resolver';
5
5
  import { type TvSimilarTvShowsArgs } from '@tmdb-graphql-api/schema/types';
6
- import { type FetchResponse } from 'getta';
7
6
  import { encode } from 'js-base64';
8
- import { SIMILAR, SIMILAR_TV_SHOWS, TV } from '../constants.ts';
7
+ import { SIMILAR, TV } from '../constants.ts';
9
8
  import { type Context, type RawTv, type RawTvSimilarTvShows, type RawTvWithAppendToResponse } from '../types.ts';
10
9
 
11
10
  /* eslint-disable camelcase */
@@ -19,24 +18,28 @@ export const createMakeCursors = (obj: RawTv) => {
19
18
  };
20
19
  };
21
20
 
22
- export const createResourceResolver =
23
- (
24
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
25
- _args: TvSimilarTvShowsArgs,
26
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context
27
- ) =>
28
- async ({ page }: { page: number }) => {
29
- if (obj.similar?.page === page && obj.__headers) {
30
- setCacheMetadata(`${TV}.${SIMILAR_TV_SHOWS}`, obj.__headers);
21
+ const isRawTvWithSimilarShows = (
22
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
23
+ page: number
24
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } =>
25
+ SIMILAR in obj && obj.similar?.page === page && '__headers' in obj;
31
26
 
27
+ export const createResourceResolver: CreateResourceResolver<
28
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
29
+ TvSimilarTvShowsArgs,
30
+ Context,
31
+ RawTvSimilarTvShows
32
+ > =
33
+ (obj, _args, { requestID, restClient, tmdbGuestSessionId }) =>
34
+ async ({ page }: { page: number }) => {
35
+ if (isRawTvWithSimilarShows(obj, page)) {
32
36
  return {
33
37
  data: obj.similar,
34
- errors: [],
35
38
  headers: obj.__headers,
36
- } as unknown as FetchResponse<RawTvSimilarTvShows>;
39
+ };
37
40
  }
38
41
 
39
- const result = await restClient.tv<RawTvSimilarTvShows>(
42
+ const { data, errors, headers } = await restClient.tv<RawTvSimilarTvShows>(
40
43
  {
41
44
  pathTemplateData: { id: obj.id, type: SIMILAR },
42
45
  queryParams: { page },
@@ -44,11 +47,11 @@ export const createResourceResolver =
44
47
  { requestID, tmdbGuestSessionId }
45
48
  );
46
49
 
47
- if (result.data) {
48
- setCacheMetadata(`${TV}.${SIMILAR_TV_SHOWS}`, result.headers);
49
- }
50
-
51
- return result;
50
+ return {
51
+ data,
52
+ errors,
53
+ headers,
54
+ };
52
55
  };
53
56
 
54
57
  export const cursorCache = new Core({
@@ -59,10 +62,11 @@ export const cursorCache = new Core({
59
62
  });
60
63
 
61
64
  export const getters: Getters<RawTvSimilarTvShows, RawTv> = {
62
- nodes: ({ results }) => results,
63
- page: ({ page }) => page,
64
- totalPages: ({ total_pages }) => total_pages,
65
- totalResults: ({ total_results }) => total_results,
65
+ // @ts-expect-error minor type mismatch
66
+ nodes: ({ results = [] }) => results,
67
+ page: ({ page = 0 }) => page,
68
+ totalPages: ({ total_pages = 0 }) => total_pages,
69
+ totalResults: ({ total_results = 0 }) => total_results,
66
70
  };
67
71
 
68
72
  export const resolveTvSimilarTvShows = makeConnectionResolver({
@@ -7,41 +7,41 @@ 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 RawTvWithAppendToResponse } from '../types.ts';
12
+ import { TRANSLATIONS } from '../constants.ts';
13
+ import { type Context } from '../types.ts';
12
14
  import { resolveTvTranslations } from './tvTranslations.ts';
13
15
 
14
16
  const mockedFetch = mockFetch(jest.fn);
15
17
 
16
18
  describe('resolveTvTranslations >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
19
  const tvId = 1399;
20
20
 
21
- beforeAll(() => {
22
- restClient = createRestClient();
23
- });
21
+ const context = {
22
+ logger: createMockLogger(jest.fn),
23
+ restClient: createRestClient(),
24
+ setCacheMetadata: jest.fn(),
25
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
+ } as unknown as Context;
27
+
28
+ const info = {} as GraphQLResolveInfo;
24
29
 
25
30
  beforeEach(() => {
26
- mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id: tvId, type: 'translations' }), {
31
+ mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id: tvId, type: TRANSLATIONS }), {
27
32
  body: tvTranslations,
28
33
  });
29
34
  });
30
35
 
31
36
  afterEach(async () => {
32
37
  mockedFetch.mockReset();
33
- await restClient.cache?.clear();
38
+ await context.restClient.cache?.clear();
39
+ jest.clearAllMocks();
34
40
  });
35
41
 
36
42
  it('should return the tv translations', async () => {
37
- await expect(
38
- resolveTvTranslations(
39
- tvDetails as unknown as RawTvWithAppendToResponse,
40
- undefined,
41
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
42
- {} as GraphQLResolveInfo
43
- )
44
- ).resolves.toMatchSnapshot();
43
+ // @ts-expect-error minor nested type mismatch
44
+ await expect(resolveTvTranslations(tvDetails, undefined, context, info)).resolves.toMatchSnapshot();
45
45
  });
46
46
 
47
47
  describe('when raw tv data has translations', () => {
@@ -54,20 +54,18 @@ describe('resolveTvTranslations >', () => {
54
54
 
55
55
  await expect(
56
56
  resolveTvTranslations(
57
+ // @ts-expect-error minor nested type mismatch
57
58
  {
58
59
  ...tvDetails,
59
60
  __headers: new Headers(),
60
61
  translations: rest,
61
- } as unknown as RawTvWithAppendToResponse & {
62
- __headers?: Headers;
63
62
  },
64
63
  undefined,
65
64
  {
65
+ ...context,
66
66
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
67
- setCacheMetadata,
68
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
69
- } as unknown as Context,
70
- {} as GraphQLResolveInfo
67
+ },
68
+ info
71
69
  )
72
70
  ).resolves.toMatchSnapshot();
73
71
  });
@@ -80,20 +78,18 @@ describe('resolveTvTranslations >', () => {
80
78
  const { id, ...rest } = tvTranslations;
81
79
 
82
80
  await resolveTvTranslations(
81
+ // @ts-expect-error minor nested type mismatch
83
82
  {
84
83
  ...tvDetails,
85
84
  __headers: new Headers(),
86
85
  translations: rest,
87
- } as unknown as RawTvWithAppendToResponse & {
88
- __headers?: Headers;
89
86
  },
90
87
  undefined,
91
88
  {
89
+ ...context,
92
90
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
93
- setCacheMetadata,
94
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
95
- } as unknown as Context,
96
- {} as GraphQLResolveInfo
91
+ },
92
+ info
97
93
  );
98
94
 
99
95
  expect(tvFetchMock).not.toHaveBeenCalled();
@@ -1,16 +1,23 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
1
  import { TRANSLATIONS, TV } from '../constants.ts';
3
- import { type Context, type RawTvTranslations, type RawTvWithAppendToResponse } from '../types.ts';
2
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
3
+ import { type RawTv, type RawTvTranslations, type RawTvWithAppendToResponse } from '../types.ts';
4
4
 
5
- export const resolveTvTranslations = async (
6
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
7
- _args: undefined,
8
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
9
- { fieldNodes }: GraphQLResolveInfo
10
- ) => {
11
- if (obj.translations && obj.__headers) {
12
- setCacheMetadata(`${TV}.${TRANSLATIONS}`, obj.__headers);
13
- return obj.translations.translations;
5
+ const isRawTvWithTranslations = (
6
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers })
7
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } => TRANSLATIONS in obj && '__headers' in obj;
8
+
9
+ export const resolveTvTranslations = buildObjResolver<
10
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
11
+ RawTvTranslations['translations']
12
+ >(TV, async (obj, ctx) => {
13
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
14
+
15
+ if (isRawTvWithTranslations(obj)) {
16
+ return {
17
+ data: obj.translations?.translations,
18
+ headers: obj.__headers,
19
+ source: 'parentNode',
20
+ };
14
21
  }
15
22
 
16
23
  const { data, errors, headers } = await restClient.tv<RawTvTranslations>(
@@ -20,13 +27,9 @@ export const resolveTvTranslations = async (
20
27
  { requestID, tmdbGuestSessionId }
21
28
  );
22
29
 
23
- if (errors?.length) {
24
- throw new GraphQLError(`Failed to resolve ${TV} ${obj.id} ${TRANSLATIONS}.`, {
25
- nodes: fieldNodes,
26
- originalError: errors[0],
27
- });
28
- }
29
-
30
- setCacheMetadata(`${TV}.${TRANSLATIONS}`, headers);
31
- return data?.translations;
32
- };
30
+ return {
31
+ data: data?.translations,
32
+ errors,
33
+ headers,
34
+ };
35
+ });
@@ -7,41 +7,41 @@ 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 RawTvWithAppendToResponse } from '../types.ts';
12
+ import { VIDEOS } from '../constants.ts';
13
+ import { type Context } from '../types.ts';
12
14
  import { resolveTvVideos } from './tvVideos.ts';
13
15
 
14
16
  const mockedFetch = mockFetch(jest.fn);
15
17
 
16
18
  describe('resolveTvVideos >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
19
  const tvId = 1399;
20
20
 
21
- beforeAll(() => {
22
- restClient = createRestClient();
23
- });
21
+ const context = {
22
+ logger: createMockLogger(jest.fn),
23
+ restClient: createRestClient(),
24
+ setCacheMetadata: jest.fn(),
25
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
+ } as unknown as Context;
27
+
28
+ const info = {} as GraphQLResolveInfo;
24
29
 
25
30
  beforeEach(() => {
26
- mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id: tvId, type: 'videos' }), {
31
+ mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id: tvId, type: VIDEOS }), {
27
32
  body: tvVideos,
28
33
  });
29
34
  });
30
35
 
31
36
  afterEach(async () => {
32
37
  mockedFetch.mockReset();
33
- await restClient.cache?.clear();
38
+ await context.restClient.cache?.clear();
39
+ jest.clearAllMocks();
34
40
  });
35
41
 
36
42
  it('should return the tv videos', async () => {
37
- await expect(
38
- resolveTvVideos(
39
- tvDetails as unknown as RawTvWithAppendToResponse,
40
- undefined,
41
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
42
- {} as GraphQLResolveInfo
43
- )
44
- ).resolves.toMatchSnapshot();
43
+ // @ts-expect-error minor nested type mismatch
44
+ await expect(resolveTvVideos(tvDetails, undefined, context, info)).resolves.toMatchSnapshot();
45
45
  });
46
46
 
47
47
  describe('when raw tv data has videos', () => {
@@ -54,20 +54,18 @@ describe('resolveTvVideos >', () => {
54
54
 
55
55
  await expect(
56
56
  resolveTvVideos(
57
+ // @ts-expect-error minor nested type mismatch
57
58
  {
58
59
  ...tvDetails,
59
60
  __headers: new Headers(),
60
61
  videos: rest,
61
- } as unknown as RawTvWithAppendToResponse & {
62
- __headers?: Headers;
63
62
  },
64
63
  undefined,
65
64
  {
65
+ ...context,
66
66
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
67
- setCacheMetadata,
68
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
69
- } as unknown as Context,
70
- {} as GraphQLResolveInfo
67
+ },
68
+ info
71
69
  )
72
70
  ).resolves.toMatchSnapshot();
73
71
  });
@@ -80,20 +78,18 @@ describe('resolveTvVideos >', () => {
80
78
  const { id, ...rest } = tvVideos;
81
79
 
82
80
  await resolveTvVideos(
81
+ // @ts-expect-error minor nested type mismatch
83
82
  {
84
83
  ...tvDetails,
85
84
  __headers: new Headers(),
86
85
  videos: rest,
87
- } as unknown as RawTvWithAppendToResponse & {
88
- __headers?: Headers;
89
86
  },
90
87
  undefined,
91
88
  {
89
+ ...context,
92
90
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
93
- setCacheMetadata,
94
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
95
- } as unknown as Context,
96
- {} as GraphQLResolveInfo
91
+ },
92
+ info
97
93
  );
98
94
 
99
95
  expect(tvFetchMock).not.toHaveBeenCalled();
@@ -1,16 +1,23 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
1
  import { TV, VIDEOS } from '../constants.ts';
3
- import { type Context, type RawTvVideos, type RawTvWithAppendToResponse } from '../types.ts';
2
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
3
+ import { type RawTv, type RawTvVideos, type RawTvWithAppendToResponse } from '../types.ts';
4
4
 
5
- export const resolveTvVideos = async (
6
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
7
- _args: undefined,
8
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
9
- { fieldNodes }: GraphQLResolveInfo
10
- ) => {
11
- if (obj.videos && obj.__headers) {
12
- setCacheMetadata(`${TV}.${VIDEOS}`, obj.__headers);
13
- return obj.videos.results;
5
+ const isRawTvWithVideos = (
6
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers })
7
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } => VIDEOS in obj && '__headers' in obj;
8
+
9
+ export const resolveTvVideos = buildObjResolver<
10
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
11
+ RawTvVideos['results']
12
+ >(TV, async (obj, ctx) => {
13
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
14
+
15
+ if (isRawTvWithVideos(obj)) {
16
+ return {
17
+ data: obj.videos?.results,
18
+ headers: obj.__headers,
19
+ source: 'parentNode',
20
+ };
14
21
  }
15
22
 
16
23
  const { data, errors, headers } = await restClient.tv<RawTvVideos>(
@@ -20,13 +27,9 @@ export const resolveTvVideos = async (
20
27
  { requestID, tmdbGuestSessionId }
21
28
  );
22
29
 
23
- if (errors?.length) {
24
- throw new GraphQLError(`Failed to resolve ${TV} ${obj.id} ${VIDEOS}.`, {
25
- nodes: fieldNodes,
26
- originalError: errors[0],
27
- });
28
- }
29
-
30
- setCacheMetadata(`${TV}.${VIDEOS}`, headers);
31
- return data?.results;
32
- };
30
+ return {
31
+ data: data?.results,
32
+ errors,
33
+ headers,
34
+ };
35
+ });
@@ -7,41 +7,41 @@ 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 RawTvWithAppendToResponse } from '../types.ts';
12
+ import { TV } from '../constants.ts';
13
+ import { type Context } from '../types.ts';
12
14
  import { resolveTvWatchProviders } from './tvWatchProviders.ts';
13
15
 
14
16
  const mockedFetch = mockFetch(jest.fn);
15
17
 
16
18
  describe('resolveTvWatchProviders >', () => {
17
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
18
- const setCacheMetadata = jest.fn();
19
19
  const tvId = 1399;
20
20
 
21
- beforeAll(() => {
22
- restClient = createRestClient();
23
- });
21
+ const context = {
22
+ logger: createMockLogger(jest.fn),
23
+ restClient: createRestClient(),
24
+ setCacheMetadata: jest.fn(),
25
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
+ } as unknown as Context;
27
+
28
+ const info = {} as GraphQLResolveInfo;
24
29
 
25
30
  beforeEach(() => {
26
- mockedFetch.mockGetOnce(buildEndpoint(WATCH_PROVIDER_PATH, { id: tvId, type: 'tv' }), {
31
+ mockedFetch.mockGetOnce(buildEndpoint(WATCH_PROVIDER_PATH, { id: tvId, type: TV }), {
27
32
  body: tvWatchProviders,
28
33
  });
29
34
  });
30
35
 
31
36
  afterEach(async () => {
32
37
  mockedFetch.mockReset();
33
- await restClient.cache?.clear();
38
+ await context.restClient.cache?.clear();
39
+ jest.clearAllMocks();
34
40
  });
35
41
 
36
42
  it('should return the tv watch providers', async () => {
37
- await expect(
38
- resolveTvWatchProviders(
39
- tvDetails as unknown as RawTvWithAppendToResponse,
40
- undefined,
41
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
42
- {} as GraphQLResolveInfo
43
- )
44
- ).resolves.toMatchSnapshot();
43
+ // @ts-expect-error minor nested type mismatch
44
+ await expect(resolveTvWatchProviders(tvDetails, undefined, context, info)).resolves.toMatchSnapshot();
45
45
  });
46
46
 
47
47
  describe('when raw tv data has watch providers', () => {
@@ -54,20 +54,18 @@ describe('resolveTvWatchProviders >', () => {
54
54
 
55
55
  await expect(
56
56
  resolveTvWatchProviders(
57
+ // @ts-expect-error minor nested type mismatch
57
58
  {
58
59
  ...tvDetails,
59
60
  __headers: new Headers(),
60
61
  'watch/providers': rest,
61
- } as unknown as RawTvWithAppendToResponse & {
62
- __headers?: Headers;
63
62
  },
64
63
  undefined,
65
64
  {
65
+ ...context,
66
66
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
67
- setCacheMetadata,
68
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
69
- } as unknown as Context,
70
- {} as GraphQLResolveInfo
67
+ },
68
+ info
71
69
  )
72
70
  ).resolves.toMatchSnapshot();
73
71
  });
@@ -80,20 +78,18 @@ describe('resolveTvWatchProviders >', () => {
80
78
  const { id, ...rest } = tvWatchProviders;
81
79
 
82
80
  await resolveTvWatchProviders(
81
+ // @ts-expect-error minor nested type mismatch
83
82
  {
84
83
  ...tvDetails,
85
84
  __headers: new Headers(),
86
85
  'watch/providers': rest,
87
- } as unknown as RawTvWithAppendToResponse & {
88
- __headers?: Headers;
89
86
  },
90
87
  undefined,
91
88
  {
89
+ ...context,
92
90
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
93
- setCacheMetadata,
94
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
95
- } as unknown as Context,
96
- {} as GraphQLResolveInfo
91
+ },
92
+ info
97
93
  );
98
94
 
99
95
  expect(tvFetchMock).not.toHaveBeenCalled();
@@ -1,32 +1,35 @@
1
- import { GraphQLError, type GraphQLResolveInfo } from 'graphql';
2
- import { TV, WATCH_PROVIDERS } from '../constants.ts';
3
- import { type Context, type RawTvWithAppendToResponse, type RawWatchProviders } from '../types.ts';
1
+ import { RAW_WATCH_PROVIDERS, TV } from '../constants.ts';
2
+ import { buildObjResolver } from '../helpers/buildObjResolver.ts';
3
+ import { type RawTv, type RawTvWatchProviders, type RawTvWithAppendToResponse } from '../types.ts';
4
4
 
5
- export const resolveTvWatchProviders = async (
6
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
7
- _args: undefined,
8
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context,
9
- { fieldNodes }: GraphQLResolveInfo
10
- ) => {
11
- if (obj['watch/providers'] && obj.__headers) {
12
- setCacheMetadata(`${TV}.${WATCH_PROVIDERS}`, obj.__headers);
13
- return obj['watch/providers'].results;
5
+ const isRawTvWithWatchProviders = (
6
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers })
7
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } => RAW_WATCH_PROVIDERS in obj && '__headers' in obj;
8
+
9
+ export const resolveTvWatchProviders = buildObjResolver<
10
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
11
+ RawTvWatchProviders['results']
12
+ >(TV, async (obj, ctx) => {
13
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
14
+
15
+ if (isRawTvWithWatchProviders(obj)) {
16
+ return {
17
+ data: obj[RAW_WATCH_PROVIDERS]?.results,
18
+ headers: obj.__headers,
19
+ source: 'parentNode',
20
+ };
14
21
  }
15
22
 
16
- const { data, errors, headers } = await restClient.watchProviders<RawWatchProviders>(
23
+ const { data, errors, headers } = await restClient.watchProviders<RawTvWatchProviders>(
17
24
  {
18
25
  pathTemplateData: { id: obj.id, type: TV },
19
26
  },
20
27
  { requestID, tmdbGuestSessionId }
21
28
  );
22
29
 
23
- if (errors?.length) {
24
- throw new GraphQLError(`Failed to resolve ${TV} ${obj.id} ${WATCH_PROVIDERS}.`, {
25
- nodes: fieldNodes,
26
- originalError: errors[0],
27
- });
28
- }
29
-
30
- setCacheMetadata(`${TV}.${WATCH_PROVIDERS}`, headers);
31
- return data?.results;
32
- };
30
+ return {
31
+ data: data?.results,
32
+ errors,
33
+ headers,
34
+ };
35
+ });
@@ -1,4 +1,4 @@
1
+ import { type Video } from '@tmdb-graphql-api/schema/types';
1
2
  import { snakeCase } from 'lodash-es';
2
- import { type RawVideo } from '../types.ts';
3
3
 
4
- export const resolveVideoType = ({ type }: RawVideo) => snakeCase(type).toUpperCase();
4
+ export const resolveVideoType = ({ type }: Video) => snakeCase(type).toUpperCase();