@tmdb-graphql-api/resolvers 0.1.2-unstable.2 → 0.1.2-unstable.3

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 (176) 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 +402 -402
  6. package/dist/types/cjs/helpers/buildArgsResolver.d.cts +1 -1
  7. package/dist/types/cjs/helpers/buildArgsResolver.d.cts.map +1 -1
  8. package/dist/types/cjs/helpers/buildNoObjArgsResolver.d.cts.map +1 -1
  9. package/dist/types/cjs/helpers/buildObjArgsResolver.d.cts.map +1 -1
  10. package/dist/types/cjs/helpers/buildObjResolver.d.cts.map +1 -1
  11. package/dist/types/cjs/queries/configuration.d.cts.map +1 -1
  12. package/dist/types/cjs/queries/movieAlternativeTitles.d.cts.map +1 -1
  13. package/dist/types/cjs/queries/movieReviews.d.cts.map +1 -1
  14. package/dist/types/cjs/types.d.cts +6 -5
  15. package/dist/types/cjs/types.d.cts.map +1 -1
  16. package/dist/types/esm/helpers/buildArgsResolver.d.ts +1 -1
  17. package/dist/types/esm/helpers/buildArgsResolver.d.ts.map +1 -1
  18. package/dist/types/esm/helpers/buildNoObjArgsResolver.d.ts.map +1 -1
  19. package/dist/types/esm/helpers/buildObjArgsResolver.d.ts.map +1 -1
  20. package/dist/types/esm/helpers/buildObjResolver.d.ts.map +1 -1
  21. package/dist/types/esm/queries/configuration.d.ts.map +1 -1
  22. package/dist/types/esm/queries/movieAlternativeTitles.d.ts.map +1 -1
  23. package/dist/types/esm/queries/movieReviews.d.ts.map +1 -1
  24. package/dist/types/esm/types.d.ts +6 -5
  25. package/dist/types/esm/types.d.ts.map +1 -1
  26. package/dist/types/tsconfig.build.tsbuildinfo +1 -1
  27. package/package.json +10 -10
  28. package/src/helpers/buildArgsResolver.ts +17 -14
  29. package/src/helpers/buildNoObjArgsResolver.ts +10 -8
  30. package/src/helpers/buildObjArgsResolver.ts +11 -9
  31. package/src/helpers/buildObjResolver.ts +12 -9
  32. package/src/queries/certifications.test.ts +4 -1
  33. package/src/queries/certifications.ts +2 -2
  34. package/src/queries/collection.test.ts +4 -1
  35. package/src/queries/collection.ts +2 -2
  36. package/src/queries/collectionImages.test.ts +4 -1
  37. package/src/queries/collectionImages.ts +2 -2
  38. package/src/queries/collectionTranslations.test.ts +4 -1
  39. package/src/queries/collectionTranslations.ts +2 -2
  40. package/src/queries/company.test.ts +4 -1
  41. package/src/queries/company.ts +2 -2
  42. package/src/queries/companyAlternativeNames.test.ts +4 -1
  43. package/src/queries/companyAlternativeNames.ts +2 -2
  44. package/src/queries/companyLogos.test.ts +4 -1
  45. package/src/queries/companyLogos.ts +2 -2
  46. package/src/queries/configuration.test.ts +4 -1
  47. package/src/queries/configuration.ts +2 -6
  48. package/src/queries/configurationCountries.test.ts +4 -1
  49. package/src/queries/configurationCountries.ts +2 -2
  50. package/src/queries/configurationJobs.test.ts +4 -1
  51. package/src/queries/configurationJobs.ts +2 -2
  52. package/src/queries/configurationLanguages.test.ts +4 -1
  53. package/src/queries/configurationLanguages.ts +2 -2
  54. package/src/queries/configurationPrimaryTranslations.test.ts +4 -1
  55. package/src/queries/configurationPrimaryTranslations.ts +2 -2
  56. package/src/queries/configurationTimezones.test.ts +4 -1
  57. package/src/queries/configurationTimezones.ts +2 -2
  58. package/src/queries/credit.test.ts +4 -1
  59. package/src/queries/credit.ts +2 -2
  60. package/src/queries/discoverMovies.test.ts +9 -3
  61. package/src/queries/discoverMovies.ts +2 -2
  62. package/src/queries/discoverTv.test.ts +9 -3
  63. package/src/queries/discoverTv.ts +2 -2
  64. package/src/queries/episode.test.ts +4 -1
  65. package/src/queries/episode.ts +2 -2
  66. package/src/queries/episodeCredits.test.ts +4 -1
  67. package/src/queries/episodeCredits.ts +2 -2
  68. package/src/queries/episodeExternalIds.test.ts +4 -1
  69. package/src/queries/episodeExternalIds.ts +2 -2
  70. package/src/queries/episodeStills.test.ts +4 -1
  71. package/src/queries/episodeStills.ts +2 -2
  72. package/src/queries/episodeTranslations.test.ts +4 -1
  73. package/src/queries/episodeTranslations.ts +2 -2
  74. package/src/queries/episodeVideos.test.ts +4 -1
  75. package/src/queries/episodeVideos.ts +2 -2
  76. package/src/queries/find.test.ts +4 -1
  77. package/src/queries/find.ts +2 -2
  78. package/src/queries/genres.test.ts +4 -1
  79. package/src/queries/genres.ts +2 -2
  80. package/src/queries/keyword.test.ts +4 -1
  81. package/src/queries/keyword.ts +2 -2
  82. package/src/queries/movie.test.ts +4 -1
  83. package/src/queries/movie.ts +2 -2
  84. package/src/queries/movieAlternativeTitles.test.ts +4 -1
  85. package/src/queries/movieAlternativeTitles.ts +3 -2
  86. package/src/queries/movieCredits.test.ts +4 -1
  87. package/src/queries/movieCredits.ts +2 -2
  88. package/src/queries/movieExternalIds.test.ts +4 -1
  89. package/src/queries/movieExternalIds.ts +2 -2
  90. package/src/queries/movieImages.test.ts +4 -1
  91. package/src/queries/movieImages.ts +2 -2
  92. package/src/queries/movieKeywords.test.ts +4 -1
  93. package/src/queries/movieKeywords.ts +2 -2
  94. package/src/queries/movieRecommendations.test.ts +5 -2
  95. package/src/queries/movieRecommendations.ts +2 -2
  96. package/src/queries/movieReleaseDates.test.ts +4 -1
  97. package/src/queries/movieReleaseDates.ts +2 -2
  98. package/src/queries/movieReviews.test.ts +9 -4
  99. package/src/queries/movieReviews.ts +3 -2
  100. package/src/queries/movieSimilarMovies.test.ts +5 -2
  101. package/src/queries/movieSimilarMovies.ts +2 -2
  102. package/src/queries/movieTranslations.test.ts +4 -1
  103. package/src/queries/movieTranslations.ts +2 -2
  104. package/src/queries/movieVideos.test.ts +4 -1
  105. package/src/queries/movieVideos.ts +2 -2
  106. package/src/queries/movieWatchProviders.test.ts +4 -1
  107. package/src/queries/movieWatchProviders.ts +2 -2
  108. package/src/queries/network.test.ts +4 -1
  109. package/src/queries/network.ts +2 -2
  110. package/src/queries/networkAlternativeNames.test.ts +4 -1
  111. package/src/queries/networkAlternativeNames.ts +2 -2
  112. package/src/queries/networkLogos.test.ts +4 -1
  113. package/src/queries/networkLogos.ts +2 -2
  114. package/src/queries/person.test.ts +4 -1
  115. package/src/queries/person.ts +2 -2
  116. package/src/queries/personCombinedCredits.test.ts +4 -1
  117. package/src/queries/personCombinedCredits.ts +2 -2
  118. package/src/queries/personExternalIds.test.ts +4 -1
  119. package/src/queries/personExternalIds.ts +2 -2
  120. package/src/queries/personMovieCredits.test.ts +4 -1
  121. package/src/queries/personMovieCredits.ts +2 -2
  122. package/src/queries/personProfiles.test.ts +4 -1
  123. package/src/queries/personProfiles.ts +2 -2
  124. package/src/queries/personTranslations.test.ts +4 -1
  125. package/src/queries/personTranslations.ts +2 -2
  126. package/src/queries/personTvCredits.test.ts +4 -1
  127. package/src/queries/personTvCredits.ts +2 -2
  128. package/src/queries/rated.test.ts +7 -4
  129. package/src/queries/rated.ts +3 -3
  130. package/src/queries/review.test.ts +4 -1
  131. package/src/queries/review.ts +2 -2
  132. package/src/queries/search.test.ts +5 -2
  133. package/src/queries/search.ts +2 -2
  134. package/src/queries/season.test.ts +4 -1
  135. package/src/queries/season.ts +2 -2
  136. package/src/queries/seasonCredits.test.ts +4 -1
  137. package/src/queries/seasonCredits.ts +2 -2
  138. package/src/queries/seasonExternalIds.test.ts +4 -1
  139. package/src/queries/seasonExternalIds.ts +2 -2
  140. package/src/queries/seasonPosters.test.ts +4 -1
  141. package/src/queries/seasonPosters.ts +2 -2
  142. package/src/queries/seasonTranslations.test.ts +4 -1
  143. package/src/queries/seasonTranslations.ts +2 -2
  144. package/src/queries/seasonVideos.test.ts +4 -1
  145. package/src/queries/seasonVideos.ts +2 -2
  146. package/src/queries/trending.test.ts +5 -2
  147. package/src/queries/trending.ts +2 -2
  148. package/src/queries/tv.test.ts +4 -1
  149. package/src/queries/tv.ts +2 -2
  150. package/src/queries/tvAlternativeTitles.test.ts +4 -1
  151. package/src/queries/tvAlternativeTitles.ts +2 -2
  152. package/src/queries/tvContentRatings.test.ts +4 -1
  153. package/src/queries/tvContentRatings.ts +2 -2
  154. package/src/queries/tvCredits.test.ts +4 -1
  155. package/src/queries/tvCredits.ts +2 -2
  156. package/src/queries/tvEpisodeGroups.test.ts +4 -1
  157. package/src/queries/tvEpisodeGroups.ts +2 -2
  158. package/src/queries/tvExternalIds.test.ts +4 -1
  159. package/src/queries/tvExternalIds.ts +2 -2
  160. package/src/queries/tvImages.test.ts +4 -1
  161. package/src/queries/tvImages.ts +2 -2
  162. package/src/queries/tvKeywords.test.ts +4 -1
  163. package/src/queries/tvKeywords.ts +2 -2
  164. package/src/queries/tvRecommendations.test.ts +5 -2
  165. package/src/queries/tvRecommendations.ts +2 -2
  166. package/src/queries/tvReviews.test.ts +5 -2
  167. package/src/queries/tvReviews.ts +2 -2
  168. package/src/queries/tvSimilarTvShows.test.ts +5 -2
  169. package/src/queries/tvSimilarTvShows.ts +2 -2
  170. package/src/queries/tvTranslations.test.ts +4 -1
  171. package/src/queries/tvTranslations.ts +2 -2
  172. package/src/queries/tvVideos.test.ts +4 -1
  173. package/src/queries/tvVideos.ts +2 -2
  174. package/src/queries/tvWatchProviders.test.ts +4 -1
  175. package/src/queries/tvWatchProviders.ts +2 -2
  176. package/src/types.ts +4 -5
@@ -5,13 +5,13 @@ import { type RawCredit } from '../types.ts';
5
5
 
6
6
  export const resolveCredit = buildArgsResolver<QueryCreditArgs, RawCredit>(CREDIT, async (args, ctx) => {
7
7
  const { id } = args;
8
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
8
+ const { data: ctxData, restClient } = ctx;
9
9
 
10
10
  const { data, errors, headers } = await restClient.credit<RawCredit>(
11
11
  {
12
12
  pathTemplateData: { id },
13
13
  },
14
- { requestID, tmdbGuestSessionId }
14
+ ctxData
15
15
  );
16
16
 
17
17
  return {
@@ -50,12 +50,15 @@ describe('createMakeCursors', () => {
50
50
 
51
51
  describe('createResourceResolver', () => {
52
52
  const context = {
53
+ data: {
54
+ requestID: 'mockRequestID',
55
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
56
+ },
53
57
  logger: createMockLogger(jest.fn),
54
58
  restClient: {
55
59
  discover: jest.fn().mockReturnValue({}),
56
60
  },
57
61
  setCacheMetadata: jest.fn(),
58
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
59
62
  } as unknown as Context;
60
63
 
61
64
  const info = {} as GraphQLResolveInfo;
@@ -76,17 +79,20 @@ describe('createResourceResolver', () => {
76
79
  sort_by: 'popularity.desc',
77
80
  },
78
81
  },
79
- { requestID: undefined, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' }
82
+ { requestID: 'mockRequestID', tmdbGuestSessionId: 'mockTmdbGuestSessionId' }
80
83
  );
81
84
  });
82
85
  });
83
86
 
84
87
  describe('resolveDiscoverMovies', () => {
85
88
  const context = {
89
+ data: {
90
+ requestID: 'mockRequestID',
91
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
92
+ },
86
93
  logger: createMockLogger(jest.fn),
87
94
  restClient: createRestClient(),
88
95
  setCacheMetadata: jest.fn(),
89
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
90
96
  } as unknown as Context;
91
97
 
92
98
  const info = {} as GraphQLResolveInfo;
@@ -31,14 +31,14 @@ export const createResourceResolver: CreateResourceResolver<
31
31
  Context,
32
32
  RawDiscoverMovies
33
33
  > =
34
- (_obj, args, { requestID, restClient, tmdbGuestSessionId }) =>
34
+ (_obj, args, { data: ctxData, restClient }) =>
35
35
  async ({ page }) =>
36
36
  restClient.discover<RawDiscoverMovies>(
37
37
  {
38
38
  pathTemplateData: { type: MOVIE },
39
39
  queryParams: { ...formatQueryParams(args), page },
40
40
  },
41
- { requestID, tmdbGuestSessionId }
41
+ ctxData
42
42
  );
43
43
 
44
44
  export const cursorCache = new Core({
@@ -48,12 +48,15 @@ describe('createMakeCursors', () => {
48
48
 
49
49
  describe('createResourceResolver', () => {
50
50
  const context = {
51
+ data: {
52
+ requestID: 'mockRequestID',
53
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
54
+ },
51
55
  logger: createMockLogger(jest.fn),
52
56
  restClient: {
53
57
  discover: jest.fn().mockReturnValue({}),
54
58
  },
55
59
  setCacheMetadata: jest.fn(),
56
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
57
60
  } as unknown as Context;
58
61
 
59
62
  const info = {} as GraphQLResolveInfo;
@@ -75,17 +78,20 @@ describe('createResourceResolver', () => {
75
78
  with_original_language: 'en',
76
79
  },
77
80
  },
78
- { requestID: undefined, tmdbGuestSessionId: 'mock-tmdbGuestSessionId' }
81
+ { requestID: 'mockRequestID', tmdbGuestSessionId: 'mockTmdbGuestSessionId' }
79
82
  );
80
83
  });
81
84
  });
82
85
 
83
86
  describe('resolveDiscoverTv', () => {
84
87
  const context = {
88
+ data: {
89
+ requestID: 'mockRequestID',
90
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
91
+ },
85
92
  logger: createMockLogger(jest.fn),
86
93
  restClient: createRestClient(),
87
94
  setCacheMetadata: jest.fn(),
88
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
89
95
  } as unknown as Context;
90
96
 
91
97
  const info = {} as GraphQLResolveInfo;
@@ -26,14 +26,14 @@ export const createMakeCursors = (_obj: undefined, args: QueryDiscoverTvArgs) =>
26
26
  };
27
27
 
28
28
  export const createResourceResolver: CreateResourceResolver<undefined, QueryDiscoverTvArgs, Context, RawDiscoverTv> =
29
- (_obj, args, { requestID, restClient, tmdbGuestSessionId }) =>
29
+ (_obj, args, { data: ctxData, restClient }) =>
30
30
  async ({ page }) =>
31
31
  restClient.discover<RawDiscoverTv>(
32
32
  {
33
33
  pathTemplateData: { type: TV },
34
34
  queryParams: { ...formatQueryParams(args), page },
35
35
  },
36
- { requestID, tmdbGuestSessionId }
36
+ ctxData
37
37
  );
38
38
 
39
39
  export const cursorCache = new Core({
@@ -22,10 +22,13 @@ describe('resolveEpisode >', () => {
22
22
  const id = 1399;
23
23
 
24
24
  const context = {
25
+ data: {
26
+ requestID: 'mockRequestID',
27
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
28
+ },
25
29
  logger: createMockLogger(jest.fn),
26
30
  restClient: createRestClient(),
27
31
  setCacheMetadata: jest.fn(),
28
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
29
32
  } as unknown as Context;
30
33
 
31
34
  beforeEach(() => {
@@ -23,7 +23,7 @@ export const resolveEpisode = buildObjArgsResolver<
23
23
  | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers })
24
24
  | EnrichedRawEpisodeWithAppendToResponse[keyof EnrichedRawEpisodeWithAppendToResponse]
25
25
  >(EPISODE, async (obj, args, ctx, info) => {
26
- const { fragmentDefinitions, requestID, restClient, tmdbGuestSessionId } = ctx;
26
+ const { data: ctxData, fragmentDefinitions, restClient } = ctx;
27
27
  const { fieldName, fieldNodes } = info;
28
28
  const typedFieldName = snakeCase(fieldName) as keyof RawEpisode;
29
29
  const { episodeNumber, id, seasonNumber } = getTvIdSeasonAndEpisode(obj, args);
@@ -51,7 +51,7 @@ export const resolveEpisode = buildObjArgsResolver<
51
51
  }
52
52
  : {}),
53
53
  },
54
- { requestID, tmdbGuestSessionId }
54
+ ctxData
55
55
  );
56
56
 
57
57
  const episodeData = {
@@ -21,10 +21,13 @@ describe('resolveEpisodeCredits >', () => {
21
21
  const episodeNumber = 1;
22
22
 
23
23
  const context = {
24
+ data: {
25
+ requestID: 'mockRequestID',
26
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
27
+ },
24
28
  logger: createMockLogger(jest.fn),
25
29
  restClient: createRestClient(),
26
30
  setCacheMetadata: jest.fn(),
27
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
28
31
  } as unknown as Context;
29
32
 
30
33
  beforeEach(() => {
@@ -15,7 +15,7 @@ export const resolveEpisodeCredits = buildObjResolver<
15
15
  EnrichedRawEpisode | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers }),
16
16
  RawEpisodeCredits['cast'] | RawEpisodeCredits['crew'] | RawEpisodeCredits['guest_stars']
17
17
  >(EPISODE, async (obj, ctx, info) => {
18
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
18
+ const { data: ctxData, restClient } = ctx;
19
19
  const { fieldName } = info;
20
20
  const typedFieldName = snakeCase(fieldName) as 'cast' | 'crew' | 'guest_stars';
21
21
 
@@ -36,7 +36,7 @@ export const resolveEpisodeCredits = buildObjResolver<
36
36
  type: CREDITS,
37
37
  },
38
38
  },
39
- { requestID, tmdbGuestSessionId }
39
+ ctxData
40
40
  );
41
41
 
42
42
  return {
@@ -22,10 +22,13 @@ describe('resolveEpisodeExternalIds >', () => {
22
22
  const episodeNumber = 1;
23
23
 
24
24
  const context = {
25
+ data: {
26
+ requestID: 'mockRequestID',
27
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
28
+ },
25
29
  logger: createMockLogger(jest.fn),
26
30
  restClient: createRestClient(),
27
31
  setCacheMetadata: jest.fn(),
28
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
29
32
  } as unknown as Context;
30
33
 
31
34
  const info = { fieldName: EXTERNAL_IDS } as GraphQLResolveInfo;
@@ -17,7 +17,7 @@ export const resolveEpisodeExternalIds = buildObjResolver<
17
17
  EnrichedRawEpisode | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers }),
18
18
  Except<RawEpisodeExternalIds, 'id'>
19
19
  >(EPISODE, async (obj, ctx, info) => {
20
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
20
+ const { data: ctxData, restClient } = ctx;
21
21
  const { fieldName } = info;
22
22
  const typedFieldName = snakeCase(fieldName) as 'external_ids';
23
23
 
@@ -38,7 +38,7 @@ export const resolveEpisodeExternalIds = buildObjResolver<
38
38
  type: typedFieldName,
39
39
  },
40
40
  },
41
- { requestID, tmdbGuestSessionId }
41
+ ctxData
42
42
  );
43
43
 
44
44
  const { id: movieId, ...rest } = data ?? {};
@@ -21,10 +21,13 @@ describe('resolveEpisodeStills >', () => {
21
21
  const episodeNumber = 1;
22
22
 
23
23
  const context = {
24
+ data: {
25
+ requestID: 'mockRequestID',
26
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
27
+ },
24
28
  logger: createMockLogger(jest.fn),
25
29
  restClient: createRestClient(),
26
30
  setCacheMetadata: jest.fn(),
27
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
28
31
  } as unknown as Context;
29
32
 
30
33
  const info = { fieldName: STILLS } as GraphQLResolveInfo;
@@ -15,7 +15,7 @@ export const resolveEpisodeStills = buildObjResolver<
15
15
  EnrichedRawEpisode | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers }),
16
16
  RawEpisodeImages['stills']
17
17
  >(EPISODE, async (obj, ctx, info) => {
18
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
18
+ const { data: ctxData, restClient } = ctx;
19
19
  const { fieldName } = info;
20
20
  const typedFieldName = snakeCase(fieldName) as 'stills';
21
21
 
@@ -36,7 +36,7 @@ export const resolveEpisodeStills = buildObjResolver<
36
36
  type: IMAGES,
37
37
  },
38
38
  },
39
- { requestID, tmdbGuestSessionId }
39
+ ctxData
40
40
  );
41
41
 
42
42
  return {
@@ -21,10 +21,13 @@ describe('resolveEpisodeTranslations >', () => {
21
21
  const episodeNumber = 1;
22
22
 
23
23
  const context = {
24
+ data: {
25
+ requestID: 'mockRequestID',
26
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
27
+ },
24
28
  logger: createMockLogger(jest.fn),
25
29
  restClient: createRestClient(),
26
30
  setCacheMetadata: jest.fn(),
27
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
28
31
  } as unknown as Context;
29
32
 
30
33
  const info = { fieldName: TRANSLATIONS } as GraphQLResolveInfo;
@@ -14,7 +14,7 @@ export const resolveEpisodeTranslations = buildObjResolver<
14
14
  EnrichedRawEpisode | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers }),
15
15
  RawEpisodeTranslations['translations']
16
16
  >(EPISODE, async (obj, ctx) => {
17
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
17
+ const { data: ctxData, restClient } = ctx;
18
18
 
19
19
  if (isEnrichedRawEpisodeWithTranslations(obj)) {
20
20
  return {
@@ -33,7 +33,7 @@ export const resolveEpisodeTranslations = buildObjResolver<
33
33
  type: TRANSLATIONS,
34
34
  },
35
35
  },
36
- { requestID, tmdbGuestSessionId }
36
+ ctxData
37
37
  );
38
38
 
39
39
  return {
@@ -21,10 +21,13 @@ describe('resolveEpisodeVideos >', () => {
21
21
  const episodeNumber = 1;
22
22
 
23
23
  const context = {
24
+ data: {
25
+ requestID: 'mockRequestID',
26
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
27
+ },
24
28
  logger: createMockLogger(jest.fn),
25
29
  restClient: createRestClient(),
26
30
  setCacheMetadata: jest.fn(),
27
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
28
31
  } as unknown as Context;
29
32
 
30
33
  const info = { fieldName: TRANSLATIONS } as GraphQLResolveInfo;
@@ -14,7 +14,7 @@ export const resolveEpisodeVideos = buildObjResolver<
14
14
  EnrichedRawEpisode | (EnrichedRawEpisodeWithAppendToResponse & { __headers?: Headers }),
15
15
  RawEpisodeVideos['results']
16
16
  >(EPISODE, async (obj, ctx) => {
17
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
17
+ const { data: ctxData, restClient } = ctx;
18
18
 
19
19
  if (isEnrichedRawEpisodeWithVideos(obj)) {
20
20
  return {
@@ -33,7 +33,7 @@ export const resolveEpisodeVideos = buildObjResolver<
33
33
  type: VIDEOS,
34
34
  },
35
35
  },
36
- { requestID, tmdbGuestSessionId }
36
+ ctxData
37
37
  );
38
38
 
39
39
  return {
@@ -18,10 +18,13 @@ describe('resolveFind >', () => {
18
18
  const source = 'imdb_id' as ExternalSource;
19
19
 
20
20
  const context = {
21
+ data: {
22
+ requestID: 'mockRequestID',
23
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
24
+ },
21
25
  logger: createMockLogger(jest.fn),
22
26
  restClient: createRestClient(),
23
27
  setCacheMetadata: jest.fn(),
24
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
25
28
  } as unknown as Context;
26
29
 
27
30
  const info = {} as GraphQLResolveInfo;
@@ -13,14 +13,14 @@ type Data = {
13
13
  };
14
14
 
15
15
  export const resolveFind = buildArgsResolver<QueryFindArgs, Data>(FIND, async (args, ctx) => {
16
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
16
+ const { data: ctxData, restClient } = ctx;
17
17
 
18
18
  const { data, errors, headers } = await restClient.find<RawFind>(
19
19
  {
20
20
  pathTemplateData: { id: args.id },
21
21
  queryParams: { ...snakeCasePropNames({ externalSource: args.source }) },
22
22
  },
23
- { requestID, tmdbGuestSessionId }
23
+ ctxData
24
24
  );
25
25
 
26
26
  return {
@@ -15,10 +15,13 @@ const mockedFetch = mockFetch(jest.fn);
15
15
 
16
16
  describe('resolveGenres >', () => {
17
17
  const context = {
18
+ data: {
19
+ requestID: 'mockRequestID',
20
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
21
+ },
18
22
  logger: createMockLogger(jest.fn),
19
23
  restClient: createRestClient(),
20
24
  setCacheMetadata: jest.fn(),
21
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
22
25
  } as unknown as Context;
23
26
 
24
27
  const info = {} as GraphQLResolveInfo;
@@ -5,13 +5,13 @@ import { type RawGenres } from '../types.ts';
5
5
 
6
6
  export const resolveGenres = buildArgsResolver<QueryGenresArgs, RawGenres['genres']>(GENRES, async (args, ctx) => {
7
7
  const { screenType } = args;
8
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
8
+ const { data: ctxData, restClient } = ctx;
9
9
 
10
10
  const { data, errors, headers } = await restClient.genres<RawGenres>(
11
11
  {
12
12
  pathTemplateData: { type: screenType.toLowerCase() },
13
13
  },
14
- { requestID, tmdbGuestSessionId }
14
+ ctxData
15
15
  );
16
16
 
17
17
  return {
@@ -15,10 +15,13 @@ describe('resolveKeyword >', () => {
15
15
  const id = 2;
16
16
 
17
17
  const context = {
18
+ data: {
19
+ requestID: 'mockRequestID',
20
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
21
+ },
18
22
  logger: createMockLogger(jest.fn),
19
23
  restClient: createRestClient(),
20
24
  setCacheMetadata: jest.fn(),
21
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
22
25
  } as unknown as Context;
23
26
 
24
27
  const info = {} as GraphQLResolveInfo;
@@ -6,14 +6,14 @@ import { type RawKeyword } from '../types.ts';
6
6
 
7
7
  export const resolveKeyword = buildArgsResolver<QueryKeywordArgs, RawKeyword>(KEYWORD, async (args, ctx) => {
8
8
  const { id, includeAdult } = args;
9
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
9
+ const { data: ctxData, restClient } = ctx;
10
10
 
11
11
  const { data, errors, headers } = await restClient.keyword<RawKeyword>(
12
12
  {
13
13
  pathTemplateData: { id },
14
14
  queryParams: { ...snakeCasePropNames({ includeAdult }) },
15
15
  },
16
- { requestID, tmdbGuestSessionId }
16
+ ctxData
17
17
  );
18
18
 
19
19
  return {
@@ -21,10 +21,13 @@ describe('resolveMovie >', () => {
21
21
  const id = 1891;
22
22
 
23
23
  const context = {
24
+ data: {
25
+ requestID: 'mockRequestID',
26
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
27
+ },
24
28
  logger: createMockLogger(jest.fn),
25
29
  restClient: createRestClient(),
26
30
  setCacheMetadata: jest.fn(),
27
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
28
31
  } as unknown as Context;
29
32
 
30
33
  beforeEach(() => {
@@ -49,7 +49,7 @@ export const resolveMovie = buildObjArgsResolver<
49
49
  | (RawMovieWithAppendToResponse & { __headers?: Headers })
50
50
  | RawMovieWithAppendToResponse[keyof RawMovieWithAppendToResponse]
51
51
  >(MOVIE, async (obj, args, ctx, info) => {
52
- const { fragmentDefinitions, requestID, restClient, tmdbGuestSessionId } = ctx;
52
+ const { data: ctxData, fragmentDefinitions, restClient } = ctx;
53
53
  const { fieldName, fieldNodes } = info;
54
54
  const typedFieldName = snakeCase(fieldName) as keyof RawMovie;
55
55
 
@@ -74,7 +74,7 @@ export const resolveMovie = buildObjArgsResolver<
74
74
  }
75
75
  : {}),
76
76
  },
77
- { requestID, tmdbGuestSessionId }
77
+ ctxData
78
78
  );
79
79
 
80
80
  return {
@@ -20,10 +20,13 @@ describe('resolveMovieAlternativeTitles >', () => {
20
20
  const movieId = 1891;
21
21
 
22
22
  const context = {
23
+ data: {
24
+ requestID: 'mockRequestID',
25
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
26
+ },
23
27
  logger: createMockLogger(jest.fn),
24
28
  restClient: createRestClient(),
25
29
  setCacheMetadata: jest.fn(),
26
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
27
30
  } as unknown as Context;
28
31
 
29
32
  const info = { fieldName: ALTERNATIVE_TITLES } as GraphQLResolveInfo;
@@ -16,7 +16,7 @@ export const resolveMovieAlternativeTitles = buildObjArgsResolver<
16
16
  RawMovieAlternativeTitles['titles']
17
17
  >(MOVIE, async (obj, args, ctx, info) => {
18
18
  const { country } = args;
19
- const { logger, requestID, restClient, tmdbGuestSessionId } = ctx;
19
+ const { data: ctxData, logger, restClient } = ctx;
20
20
  const { fieldNodes } = info;
21
21
 
22
22
  if (!obj) {
@@ -28,6 +28,7 @@ export const resolveMovieAlternativeTitles = buildObjArgsResolver<
28
28
  if (isRawMovieWithAlternativeTitles(obj)) {
29
29
  return {
30
30
  data: obj.alternative_titles?.titles,
31
+ headers: obj.__headers,
31
32
  source: 'parentNode',
32
33
  };
33
34
  }
@@ -37,7 +38,7 @@ export const resolveMovieAlternativeTitles = buildObjArgsResolver<
37
38
  pathTemplateData: { id: obj.id, type: snakeCase(ALTERNATIVE_TITLES) },
38
39
  queryParams: { country },
39
40
  },
40
- { requestID, tmdbGuestSessionId }
41
+ ctxData
41
42
  );
42
43
 
43
44
  return {
@@ -19,10 +19,13 @@ describe('resolveMovieCredits >', () => {
19
19
  const movieId = 1891;
20
20
 
21
21
  const context = {
22
+ data: {
23
+ requestID: 'mockRequestID',
24
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
25
+ },
22
26
  logger: createMockLogger(jest.fn),
23
27
  restClient: createRestClient(),
24
28
  setCacheMetadata: jest.fn(),
25
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
29
  } as unknown as Context;
27
30
 
28
31
  beforeEach(() => {
@@ -10,7 +10,7 @@ export const resolveMovieCredits = buildObjResolver<
10
10
  RawMovie | (RawMovieWithAppendToResponse & { __headers?: Headers }),
11
11
  RawMovieCredits['cast'] | RawMovieCredits['crew']
12
12
  >(MOVIE, async (obj, ctx, info) => {
13
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
13
+ const { data: ctxData, restClient } = ctx;
14
14
  const { fieldName } = info;
15
15
  const typedFieldName = fieldName as 'cast' | 'crew';
16
16
 
@@ -26,7 +26,7 @@ export const resolveMovieCredits = buildObjResolver<
26
26
  {
27
27
  pathTemplateData: { id: obj.id, type: CREDITS },
28
28
  },
29
- { requestID, tmdbGuestSessionId }
29
+ ctxData
30
30
  );
31
31
 
32
32
  return {
@@ -19,10 +19,13 @@ describe('resolveMovieExternalIds >', () => {
19
19
  const movieId = 1891;
20
20
 
21
21
  const context = {
22
+ data: {
23
+ requestID: 'mockRequestID',
24
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
25
+ },
22
26
  logger: createMockLogger(jest.fn),
23
27
  restClient: createRestClient(),
24
28
  setCacheMetadata: jest.fn(),
25
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
29
  } as unknown as Context;
27
30
 
28
31
  const info = { fieldName: EXTERNAL_IDS } as GraphQLResolveInfo;
@@ -12,7 +12,7 @@ export const resolveMovieExternalIds = buildObjResolver<
12
12
  RawMovie | (RawMovieWithAppendToResponse & { __headers?: Headers }),
13
13
  Except<RawMovieExternalIds, 'id'>
14
14
  >(MOVIE, async (obj, ctx) => {
15
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
15
+ const { data: ctxData, restClient } = ctx;
16
16
 
17
17
  if (isRawMovieWithExternalIds(obj)) {
18
18
  return {
@@ -26,7 +26,7 @@ export const resolveMovieExternalIds = buildObjResolver<
26
26
  {
27
27
  pathTemplateData: { id: obj.id, type: snakeCase(EXTERNAL_IDS) },
28
28
  },
29
- { requestID, tmdbGuestSessionId }
29
+ ctxData
30
30
  );
31
31
 
32
32
  const { id: movieId, ...rest } = data!;
@@ -19,10 +19,13 @@ describe('resolveMovieImages >', () => {
19
19
  const movieId = 1891;
20
20
 
21
21
  const context = {
22
+ data: {
23
+ requestID: 'mockRequestID',
24
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
25
+ },
22
26
  logger: createMockLogger(jest.fn),
23
27
  restClient: createRestClient(),
24
28
  setCacheMetadata: jest.fn(),
25
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
29
  } as unknown as Context;
27
30
 
28
31
  beforeEach(() => {
@@ -10,7 +10,7 @@ export const resolveMovieImages = buildObjResolver<
10
10
  RawMovie | (RawMovieWithAppendToResponse & { __headers?: Headers }),
11
11
  RawMovieImages['backdrops'] | RawMovieImages['logos'] | RawMovieImages['posters']
12
12
  >(MOVIE, async (obj, ctx, info) => {
13
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
13
+ const { data: ctxData, restClient } = ctx;
14
14
  const { fieldName } = info;
15
15
  const typedFieldName = fieldName as 'backdrops' | 'logos' | 'posters';
16
16
 
@@ -26,7 +26,7 @@ export const resolveMovieImages = buildObjResolver<
26
26
  {
27
27
  pathTemplateData: { id: obj.id, type: IMAGES },
28
28
  },
29
- { requestID, tmdbGuestSessionId }
29
+ ctxData
30
30
  );
31
31
 
32
32
  return {
@@ -19,10 +19,13 @@ describe('resolveMovieKeywords >', () => {
19
19
  const movieId = 1891;
20
20
 
21
21
  const context = {
22
+ data: {
23
+ requestID: 'mockRequestID',
24
+ tmdbGuestSessionId: 'mockTmdbGuestSessionId',
25
+ },
22
26
  logger: createMockLogger(jest.fn),
23
27
  restClient: createRestClient(),
24
28
  setCacheMetadata: jest.fn(),
25
- tmdbGuestSessionId: 'mock-tmdbGuestSessionId',
26
29
  } as unknown as Context;
27
30
 
28
31
  const info = { fieldName: KEYWORDS } as GraphQLResolveInfo;
@@ -10,7 +10,7 @@ export const resolveMovieKeywords = buildObjResolver<
10
10
  RawMovie | (RawMovieWithAppendToResponse & { __headers?: Headers }),
11
11
  RawMovieKeywords['keywords']
12
12
  >(MOVIE, async (obj, ctx) => {
13
- const { requestID, restClient, tmdbGuestSessionId } = ctx;
13
+ const { data: ctxData, restClient } = ctx;
14
14
 
15
15
  if (isRawMovieWithKeywords(obj)) {
16
16
  return {
@@ -24,7 +24,7 @@ export const resolveMovieKeywords = buildObjResolver<
24
24
  {
25
25
  pathTemplateData: { id: obj.id, type: KEYWORDS },
26
26
  },
27
- { requestID, tmdbGuestSessionId }
27
+ ctxData
28
28
  );
29
29
 
30
30
  return {