@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
@@ -8,9 +8,10 @@ import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { decode } from 'js-base64';
10
10
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
11
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
11
12
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
12
13
  import { RECOMMENDATIONS, TV } from '../constants.ts';
13
- import { type Context, type RawTv, type RawTvWithAppendToResponse } from '../types.ts';
14
+ import { type Context } from '../types.ts';
14
15
  import {
15
16
  createMakeCursors,
16
17
  createResourceResolver,
@@ -21,18 +22,27 @@ import {
21
22
  const mockedFetch = mockFetch(jest.fn);
22
23
  const id = 1399;
23
24
 
25
+ const context = {
26
+ logger: createMockLogger(jest.fn),
27
+ restClient: createRestClient(),
28
+ setCacheMetadata: jest.fn(),
29
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
30
+ } as unknown as Context;
31
+
32
+ const info = {} as GraphQLResolveInfo;
33
+
24
34
  describe('createMakeCursors', () => {
25
35
  const GROUP_CURSOR = `${id}::${TV}::${RECOMMENDATIONS}`;
26
36
 
27
37
  it('makeGroupCursor', () => {
28
- const { makeGroupCursor } = createMakeCursors({ id } as unknown as RawTv);
38
+ const { makeGroupCursor } = createMakeCursors({ id });
29
39
  const groupCursor = makeGroupCursor();
30
40
  expect(decode(groupCursor)).toBe(GROUP_CURSOR);
31
41
  });
32
42
 
33
43
  it('makeIDCursor', () => {
34
44
  const recommendationTvId = '6';
35
- const { makeIDCursor } = createMakeCursors({ id } as unknown as RawTv);
45
+ const { makeIDCursor } = createMakeCursors({ id });
36
46
  const idCursor = makeIDCursor(recommendationTvId);
37
47
  expect(decode(idCursor)).toBe(`${recommendationTvId}::${GROUP_CURSOR}`);
38
48
  });
@@ -43,15 +53,8 @@ describe('createResourceResolver', () => {
43
53
  tv: jest.fn().mockReturnValue({}),
44
54
  } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>;
45
55
 
46
- const setCacheMetadata = jest.fn();
47
-
48
56
  it('when `restClient.tv` is called', async () => {
49
- const resourceResolver = createResourceResolver({ id } as unknown as RawTvWithAppendToResponse, {}, {
50
- restClient,
51
- setCacheMetadata,
52
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
53
- } as unknown as Context);
54
-
57
+ const resourceResolver = createResourceResolver({ id }, {}, { ...context, restClient }, info);
55
58
  await resourceResolver({ page: 1 });
56
59
 
57
60
  expect(restClient.tv).toHaveBeenCalledWith(
@@ -65,9 +68,6 @@ describe('createResourceResolver', () => {
65
68
  });
66
69
 
67
70
  describe('resolveTvRecommendations', () => {
68
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
69
- const setCacheMetadata = jest.fn();
70
-
71
71
  const mockEndpoint = (page: number, body: Jsonifiable) => {
72
72
  mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id, type: RECOMMENDATIONS }, { page }), {
73
73
  body,
@@ -75,49 +75,29 @@ describe('resolveTvRecommendations', () => {
75
75
  });
76
76
  };
77
77
 
78
- beforeAll(() => {
79
- restClient = createRestClient();
80
- });
81
-
82
78
  beforeEach(() => {
83
79
  mockEndpoint(1, tvRecommendations);
84
80
  });
85
81
 
86
82
  afterEach(async () => {
87
83
  mockedFetch.mockReset();
88
- await restClient.cache?.clear();
84
+ await context.restClient.cache?.clear();
89
85
  await cursorCache.clear();
86
+ jest.clearAllMocks();
90
87
  });
91
88
 
92
89
  describe('when the first 5 are requested', () => {
93
90
  it('should return the correct response', async () => {
94
- await expect(
95
- resolveTvRecommendations(
96
- { id } as RawTvWithAppendToResponse,
97
- { first: 5 },
98
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
99
- {} as GraphQLResolveInfo
100
- )
101
- ).resolves.toMatchSnapshot();
91
+ await expect(resolveTvRecommendations({ id }, { first: 5 }, context, info)).resolves.toMatchSnapshot();
102
92
  });
103
93
  });
104
94
 
105
95
  describe('when the second 5 are requested', () => {
106
96
  it('should return the correct response', async () => {
107
- const { pageInfo } = await resolveTvRecommendations(
108
- { id } as RawTvWithAppendToResponse,
109
- { first: 5 },
110
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
111
- {} as GraphQLResolveInfo
112
- );
97
+ const { pageInfo } = await resolveTvRecommendations({ id }, { first: 5 }, context, info);
113
98
 
114
99
  await expect(
115
- resolveTvRecommendations(
116
- { id } as RawTvWithAppendToResponse,
117
- { after: pageInfo.endCursor, first: 5 },
118
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
119
- {} as GraphQLResolveInfo
120
- )
100
+ resolveTvRecommendations({ id }, { after: pageInfo.endCursor, first: 5 }, context, info)
121
101
  ).resolves.toMatchSnapshot();
122
102
  });
123
103
  });
@@ -130,18 +110,18 @@ describe('resolveTvRecommendations', () => {
130
110
 
131
111
  await expect(
132
112
  resolveTvRecommendations(
113
+ // @ts-expect-error minor type mismatch
133
114
  {
134
115
  ...tvDetails,
135
116
  __headers: new Headers(),
136
117
  recommendations: tvRecommendations,
137
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
118
+ },
138
119
  { first: 5 },
139
120
  {
121
+ ...context,
140
122
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
141
- setCacheMetadata,
142
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
143
- } as unknown as Context,
144
- {} as GraphQLResolveInfo
123
+ },
124
+ info
145
125
  )
146
126
  ).resolves.toMatchSnapshot();
147
127
  });
@@ -152,18 +132,18 @@ describe('resolveTvRecommendations', () => {
152
132
  .mockResolvedValue({ data: {} } as FetchResponse);
153
133
 
154
134
  await resolveTvRecommendations(
135
+ // @ts-expect-error minor type mismatch
155
136
  {
156
137
  ...tvDetails,
157
138
  __headers: new Headers(),
158
139
  recommendations: tvRecommendations,
159
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
140
+ },
160
141
  { first: 5 },
161
142
  {
143
+ ...context,
162
144
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
163
- setCacheMetadata,
164
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
165
- } as unknown as Context,
166
- {} as GraphQLResolveInfo
145
+ },
146
+ info
167
147
  );
168
148
 
169
149
  expect(tvFetchMock).not.toHaveBeenCalled();
@@ -1,9 +1,8 @@
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 TvRecommendationsArgs } from '@tmdb-graphql-api/schema/types';
6
- import { type FetchResponse } from 'getta';
7
6
  import { encode } from 'js-base64';
8
7
  import { RECOMMENDATIONS, TV } from '../constants.ts';
9
8
  import { type Context, type RawTv, type RawTvRecommendations, type RawTvWithAppendToResponse } from '../types.ts';
@@ -19,24 +18,30 @@ export const createMakeCursors = (obj: RawTv) => {
19
18
  };
20
19
  };
21
20
 
22
- export const createResourceResolver =
23
- (
24
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
25
- _args: TvRecommendationsArgs,
26
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context
27
- ) =>
21
+ const isRawTvWithRecommendations = (
22
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
23
+ page: number
24
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } =>
25
+ RECOMMENDATIONS in obj && obj.recommendations?.page === page && '__headers' in obj;
26
+
27
+ export const createResourceResolver: CreateResourceResolver<
28
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
29
+ TvRecommendationsArgs,
30
+ Context,
31
+ RawTvRecommendations
32
+ > =
33
+ (obj, _args, ctx) =>
28
34
  async ({ page }: { page: number }) => {
29
- if (obj.recommendations?.page === page && obj.__headers) {
30
- setCacheMetadata(`${TV}.${RECOMMENDATIONS}`, obj.__headers);
35
+ const { requestID, restClient, tmdbGuestSessionId } = ctx;
31
36
 
37
+ if (isRawTvWithRecommendations(obj, page)) {
32
38
  return {
33
39
  data: obj.recommendations,
34
- errors: [],
35
40
  headers: obj.__headers,
36
- } as unknown as FetchResponse<RawTvRecommendations>;
41
+ };
37
42
  }
38
43
 
39
- const result = await restClient.tv<RawTvRecommendations>(
44
+ const { data, errors, headers } = await restClient.tv<RawTvRecommendations>(
40
45
  {
41
46
  pathTemplateData: { id: obj.id, type: RECOMMENDATIONS },
42
47
  queryParams: { page },
@@ -44,11 +49,11 @@ export const createResourceResolver =
44
49
  { requestID, tmdbGuestSessionId }
45
50
  );
46
51
 
47
- if (result.data) {
48
- setCacheMetadata(`${TV}.${RECOMMENDATIONS}`, result.headers);
49
- }
50
-
51
- return result;
52
+ return {
53
+ data,
54
+ errors,
55
+ headers,
56
+ };
52
57
  };
53
58
 
54
59
  export const cursorCache = new Core({
@@ -59,10 +64,11 @@ export const cursorCache = new Core({
59
64
  });
60
65
 
61
66
  export const getters: Getters<RawTvRecommendations, RawTv> = {
62
- nodes: ({ results }) => results,
63
- page: ({ page }) => page,
64
- totalPages: ({ total_pages }) => total_pages,
65
- totalResults: ({ total_results }) => total_results,
67
+ // @ts-expect-error minor type mismatch
68
+ nodes: ({ results = [] }) => results,
69
+ page: ({ page = 0 }) => page,
70
+ totalPages: ({ total_pages = 0 }) => total_pages,
71
+ totalResults: ({ total_results = 0 }) => total_results,
66
72
  };
67
73
 
68
74
  export const resolveTvRecommendations = makeConnectionResolver({
@@ -8,26 +8,36 @@ import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { decode } from 'js-base64';
10
10
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
11
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
11
12
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
12
13
  import { REVIEWS, TV } from '../constants.ts';
13
- import { type Context, type RawTv, type RawTvWithAppendToResponse } from '../types.ts';
14
+ import { type Context } from '../types.ts';
14
15
  import { createMakeCursors, createResourceResolver, cursorCache, resolveTvReviews } from './tvReviews.ts';
15
16
 
16
17
  const mockedFetch = mockFetch(jest.fn);
17
18
  const id = 1399;
18
19
 
20
+ const context = {
21
+ logger: createMockLogger(jest.fn),
22
+ restClient: createRestClient(),
23
+ setCacheMetadata: jest.fn(),
24
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
25
+ } as unknown as Context;
26
+
27
+ const info = {} as GraphQLResolveInfo;
28
+
19
29
  describe('createMakeCursors', () => {
20
30
  const GROUP_CURSOR = `${id}::${TV}::${REVIEWS}`;
21
31
 
22
32
  it('makeGroupCursor', () => {
23
- const { makeGroupCursor } = createMakeCursors({ id } as unknown as RawTv);
33
+ const { makeGroupCursor } = createMakeCursors({ id });
24
34
  const groupCursor = makeGroupCursor();
25
35
  expect(decode(groupCursor)).toBe(GROUP_CURSOR);
26
36
  });
27
37
 
28
38
  it('makeIDCursor', () => {
29
39
  const reviewId = '6';
30
- const { makeIDCursor } = createMakeCursors({ id } as unknown as RawTv);
40
+ const { makeIDCursor } = createMakeCursors({ id });
31
41
  const idCursor = makeIDCursor(reviewId);
32
42
  expect(decode(idCursor)).toBe(`${reviewId}::${GROUP_CURSOR}`);
33
43
  });
@@ -38,14 +48,16 @@ describe('createResourceResolver', () => {
38
48
  tv: jest.fn().mockReturnValue({}),
39
49
  } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>;
40
50
 
41
- const setCacheMetadata = jest.fn();
42
-
43
51
  it('when `restClient.tv` is called', async () => {
44
- const resourceResolver = createResourceResolver({ id } as RawTvWithAppendToResponse, {}, {
45
- restClient,
46
- setCacheMetadata,
47
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
48
- } as unknown as Context);
52
+ const resourceResolver = createResourceResolver(
53
+ { id },
54
+ {},
55
+ {
56
+ ...context,
57
+ restClient,
58
+ },
59
+ info
60
+ );
49
61
 
50
62
  await resourceResolver({ page: 1 });
51
63
 
@@ -60,9 +72,6 @@ describe('createResourceResolver', () => {
60
72
  });
61
73
 
62
74
  describe('resolveTvReviews', () => {
63
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
64
- const setCacheMetadata = jest.fn();
65
-
66
75
  const mockEndpoint = (page: number, body: Jsonifiable) => {
67
76
  mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id, type: REVIEWS }, { page }), {
68
77
  body,
@@ -70,49 +79,29 @@ describe('resolveTvReviews', () => {
70
79
  });
71
80
  };
72
81
 
73
- beforeAll(() => {
74
- restClient = createRestClient();
75
- });
76
-
77
82
  beforeEach(() => {
78
83
  mockEndpoint(1, tvReviews);
79
84
  });
80
85
 
81
86
  afterEach(async () => {
82
87
  mockedFetch.mockReset();
83
- await restClient.cache?.clear();
88
+ await context.restClient.cache?.clear();
84
89
  await cursorCache.clear();
90
+ jest.clearAllMocks();
85
91
  });
86
92
 
87
93
  describe('when the first 5 are requested', () => {
88
94
  it('should return the correct response', async () => {
89
- await expect(
90
- resolveTvReviews(
91
- { id } as RawTvWithAppendToResponse,
92
- { first: 5 },
93
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
94
- {} as GraphQLResolveInfo
95
- )
96
- ).resolves.toMatchSnapshot();
95
+ await expect(resolveTvReviews({ id }, { first: 5 }, context, info)).resolves.toMatchSnapshot();
97
96
  });
98
97
  });
99
98
 
100
99
  describe('when the second 5 are requested', () => {
101
100
  it('should return the correct response', async () => {
102
- const { pageInfo } = await resolveTvReviews(
103
- { id } as RawTvWithAppendToResponse,
104
- { first: 5 },
105
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
106
- {} as GraphQLResolveInfo
107
- );
101
+ const { pageInfo } = await resolveTvReviews({ id }, { first: 5 }, context, info);
108
102
 
109
103
  await expect(
110
- resolveTvReviews(
111
- { id } as RawTvWithAppendToResponse,
112
- { after: pageInfo.endCursor, first: 5 },
113
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
114
- {} as GraphQLResolveInfo
115
- )
104
+ resolveTvReviews({ id }, { after: pageInfo.endCursor, first: 5 }, context, info)
116
105
  ).resolves.toMatchSnapshot();
117
106
  });
118
107
  });
@@ -128,15 +117,15 @@ describe('resolveTvReviews', () => {
128
117
  {
129
118
  ...tvDetails,
130
119
  __headers: new Headers(),
120
+ // @ts-expect-error minor nested type mismatch
131
121
  reviews: tvReviews,
132
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
122
+ },
133
123
  { first: 5 },
134
124
  {
125
+ ...context,
135
126
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
136
- setCacheMetadata,
137
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
138
- } as unknown as Context,
139
- {} as GraphQLResolveInfo
127
+ },
128
+ info
140
129
  )
141
130
  ).resolves.toMatchSnapshot();
142
131
  });
@@ -150,15 +139,15 @@ describe('resolveTvReviews', () => {
150
139
  {
151
140
  ...tvDetails,
152
141
  __headers: new Headers(),
142
+ // @ts-expect-error minor nested type mismatch
153
143
  reviews: tvReviews,
154
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
144
+ },
155
145
  { first: 5 },
156
146
  {
147
+ ...context,
157
148
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
158
- setCacheMetadata,
159
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
160
- } as unknown as Context,
161
- {} as GraphQLResolveInfo
149
+ },
150
+ info
162
151
  );
163
152
 
164
153
  expect(tvFetchMock).not.toHaveBeenCalled();
@@ -1,9 +1,8 @@
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 TvReviewsArgs } from '@tmdb-graphql-api/schema/types';
6
- import { type FetchResponse } from 'getta';
7
6
  import { encode } from 'js-base64';
8
7
  import { REVIEWS, TV } from '../constants.ts';
9
8
  import {
@@ -25,24 +24,28 @@ export const createMakeCursors = (obj: RawTv) => {
25
24
  };
26
25
  };
27
26
 
28
- export const createResourceResolver =
29
- (
30
- obj: RawTvWithAppendToResponse & { __headers?: Headers },
31
- _args: TvReviewsArgs,
32
- { requestID, restClient, setCacheMetadata, tmdbGuestSessionId }: Context
33
- ) =>
34
- async ({ page }: { page: number }) => {
35
- if (obj.reviews?.page === page && obj.__headers) {
36
- setCacheMetadata(`${TV}.${REVIEWS}`, obj.__headers);
27
+ const isRawTvWithReviews = (
28
+ obj: RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
29
+ page: number
30
+ ): obj is RawTvWithAppendToResponse & { __headers: Headers } =>
31
+ REVIEWS in obj && obj.reviews?.page === page && '__headers' in obj;
37
32
 
33
+ export const createResourceResolver: CreateResourceResolver<
34
+ RawTv | (RawTvWithAppendToResponse & { __headers?: Headers }),
35
+ TvReviewsArgs,
36
+ Context,
37
+ RawTvReviews
38
+ > =
39
+ (obj, _args, { requestID, restClient, tmdbGuestSessionId }) =>
40
+ async ({ page }: { page: number }) => {
41
+ if (isRawTvWithReviews(obj, page)) {
38
42
  return {
39
43
  data: obj.reviews,
40
- errors: [],
41
44
  headers: obj.__headers,
42
- } as unknown as FetchResponse<RawTvReviews>;
45
+ };
43
46
  }
44
47
 
45
- const result = await restClient.tv<RawTvReviews>(
48
+ const { data, errors, headers } = await restClient.tv<RawTvReviews>(
46
49
  {
47
50
  pathTemplateData: { id: obj.id, type: REVIEWS },
48
51
  queryParams: { page },
@@ -50,11 +53,11 @@ export const createResourceResolver =
50
53
  { requestID, tmdbGuestSessionId }
51
54
  );
52
55
 
53
- if (result.data) {
54
- setCacheMetadata(`${TV}.${REVIEWS}`, result.headers);
55
- }
56
-
57
- return result;
56
+ return {
57
+ data,
58
+ errors,
59
+ headers,
60
+ };
58
61
  };
59
62
 
60
63
  export const cursorCache = new Core({
@@ -65,10 +68,11 @@ export const cursorCache = new Core({
65
68
  });
66
69
 
67
70
  export const getters: Getters<RawTvReviews, RawReview> = {
68
- nodes: ({ results }: RawTvReviews) => results,
69
- page: ({ page }: RawTvReviews) => page,
70
- totalPages: ({ total_pages }: RawTvReviews) => total_pages,
71
- totalResults: ({ total_results }: RawTvReviews) => total_results,
71
+ // @ts-expect-error minor type mismatch
72
+ nodes: ({ results = [] }: RawTvReviews) => results,
73
+ page: ({ page = 0 }: RawTvReviews) => page,
74
+ totalPages: ({ total_pages = 0 }: RawTvReviews) => total_pages,
75
+ totalResults: ({ total_results = 0 }: RawTvReviews) => total_results,
72
76
  };
73
77
 
74
78
  export const resolveTvReviews = makeConnectionResolver({
@@ -8,26 +8,36 @@ import { type FetchResponse, type Getta, type ShortcutProperties } from 'getta';
8
8
  import { type GraphQLResolveInfo } from 'graphql';
9
9
  import { decode } from 'js-base64';
10
10
  import { buildEndpoint } from '../__testUtils__/helpers/buildEndpoint.ts';
11
+ import { createMockLogger } from '../__testUtils__/helpers/createMockLogger.ts';
11
12
  import { createRestClient } from '../__testUtils__/helpers/createRestClient.ts';
12
13
  import { SIMILAR, TV } from '../constants.ts';
13
- import { type Context, type RawTv, type RawTvWithAppendToResponse } from '../types.ts';
14
+ import { type Context } from '../types.ts';
14
15
  import { createMakeCursors, createResourceResolver, cursorCache, resolveTvSimilarTvShows } from './tvSimilarTvShows.ts';
15
16
 
16
17
  const mockedFetch = mockFetch(jest.fn);
17
18
  const id = 1399;
18
19
 
20
+ const context = {
21
+ logger: createMockLogger(jest.fn),
22
+ restClient: createRestClient(),
23
+ setCacheMetadata: jest.fn(),
24
+ tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
25
+ } as unknown as Context;
26
+
27
+ const info = {} as GraphQLResolveInfo;
28
+
19
29
  describe('createMakeCursors', () => {
20
30
  const GROUP_CURSOR = `${id}::${TV}::${SIMILAR}`;
21
31
 
22
32
  it('makeGroupCursor', () => {
23
- const { makeGroupCursor } = createMakeCursors({ id } as unknown as RawTv);
33
+ const { makeGroupCursor } = createMakeCursors({ id });
24
34
  const groupCursor = makeGroupCursor();
25
35
  expect(decode(groupCursor)).toBe(GROUP_CURSOR);
26
36
  });
27
37
 
28
38
  it('makeIDCursor', () => {
29
39
  const similiarTvId = '6';
30
- const { makeIDCursor } = createMakeCursors({ id } as unknown as RawTv);
40
+ const { makeIDCursor } = createMakeCursors({ id });
31
41
  const idCursor = makeIDCursor(similiarTvId);
32
42
  expect(decode(idCursor)).toBe(`${similiarTvId}::${GROUP_CURSOR}`);
33
43
  });
@@ -38,14 +48,16 @@ describe('createResourceResolver', () => {
38
48
  tv: jest.fn().mockReturnValue({}),
39
49
  } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>;
40
50
 
41
- const setCacheMetadata = jest.fn();
42
-
43
51
  it('when `restClient.tv` is called', async () => {
44
- const resourceResolver = createResourceResolver({ id } as RawTvWithAppendToResponse, {}, {
45
- restClient,
46
- setCacheMetadata,
47
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
48
- } as unknown as Context);
52
+ const resourceResolver = createResourceResolver(
53
+ { id },
54
+ {},
55
+ {
56
+ ...context,
57
+ restClient,
58
+ },
59
+ info
60
+ );
49
61
 
50
62
  await resourceResolver({ page: 1 });
51
63
 
@@ -60,9 +72,6 @@ describe('createResourceResolver', () => {
60
72
  });
61
73
 
62
74
  describe('resolveTvSimilarTvShows', () => {
63
- let restClient: Getta & ShortcutProperties<ShortcutMethodNames>;
64
- const setCacheMetadata = jest.fn();
65
-
66
75
  const mockEndpoint = (page: number, body: Jsonifiable) => {
67
76
  mockedFetch.mockGetOnce(buildEndpoint(TV_PATH, { id, type: SIMILAR }, { page }), {
68
77
  body,
@@ -70,49 +79,29 @@ describe('resolveTvSimilarTvShows', () => {
70
79
  });
71
80
  };
72
81
 
73
- beforeAll(() => {
74
- restClient = createRestClient();
75
- });
76
-
77
82
  beforeEach(() => {
78
83
  mockEndpoint(1, tvSimilarTvShows);
79
84
  });
80
85
 
81
86
  afterEach(async () => {
82
87
  mockedFetch.mockReset();
83
- await restClient.cache?.clear();
88
+ await context.restClient.cache?.clear();
84
89
  await cursorCache.clear();
90
+ jest.clearAllMocks();
85
91
  });
86
92
 
87
93
  describe('when the first 5 are requested', () => {
88
94
  it('should return the correct response', async () => {
89
- await expect(
90
- resolveTvSimilarTvShows(
91
- { id } as RawTvWithAppendToResponse,
92
- { first: 5 },
93
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
94
- {} as GraphQLResolveInfo
95
- )
96
- ).resolves.toMatchSnapshot();
95
+ await expect(resolveTvSimilarTvShows({ id }, { first: 5 }, context, info)).resolves.toMatchSnapshot();
97
96
  });
98
97
  });
99
98
 
100
99
  describe('when the second 5 are requested', () => {
101
100
  it('should return the correct response', async () => {
102
- const { pageInfo } = await resolveTvSimilarTvShows(
103
- { id } as RawTvWithAppendToResponse,
104
- { first: 5 },
105
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
106
- {} as GraphQLResolveInfo
107
- );
101
+ const { pageInfo } = await resolveTvSimilarTvShows({ id }, { first: 5 }, context, info);
108
102
 
109
103
  await expect(
110
- resolveTvSimilarTvShows(
111
- { id } as RawTvWithAppendToResponse,
112
- { after: pageInfo.endCursor, first: 5 },
113
- { restClient, setCacheMetadata, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' } as unknown as Context,
114
- {} as GraphQLResolveInfo
115
- )
104
+ resolveTvSimilarTvShows({ id }, { after: pageInfo.endCursor, first: 5 }, context, info)
116
105
  ).resolves.toMatchSnapshot();
117
106
  });
118
107
  });
@@ -128,15 +117,15 @@ describe('resolveTvSimilarTvShows', () => {
128
117
  {
129
118
  ...tvDetails,
130
119
  __headers: new Headers(),
120
+ // @ts-expect-error minor type mismatch
131
121
  similar: tvSimilarTvShows,
132
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
122
+ },
133
123
  { first: 5 },
134
124
  {
125
+ ...context,
135
126
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
136
- setCacheMetadata,
137
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
138
- } as unknown as Context,
139
- {} as GraphQLResolveInfo
127
+ },
128
+ info
140
129
  )
141
130
  ).resolves.toMatchSnapshot();
142
131
  });
@@ -150,15 +139,15 @@ describe('resolveTvSimilarTvShows', () => {
150
139
  {
151
140
  ...tvDetails,
152
141
  __headers: new Headers(),
142
+ // @ts-expect-error minor type mismatch
153
143
  similar: tvSimilarTvShows,
154
- } as unknown as RawTvWithAppendToResponse & { __headers?: Headers },
144
+ },
155
145
  { first: 5 },
156
146
  {
147
+ ...context,
157
148
  restClient: { tv: tvFetchMock } as unknown as Getta & ShortcutProperties<ShortcutMethodNames>,
158
- setCacheMetadata,
159
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
160
- } as unknown as Context,
161
- {} as GraphQLResolveInfo
149
+ },
150
+ info
162
151
  );
163
152
 
164
153
  expect(tvFetchMock).not.toHaveBeenCalled();