@@ -6,7 +6,18 @@ export type GitHubRelease = Awaited<
66 ReturnType < InstanceType < typeof Octokit > [ "rest" ] [ "repos" ] [ "listReleases" ] >
77> [ "data" ] [ number ] ;
88
9- const PER_PAGE = 100 ;
9+ /**
10+ * The maximum items amount to get per-page
11+ * when fetching from GitHub API.
12+ * Capped at 100.
13+ *
14+ * (Lowercased despite being a constant for
15+ * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#property_definitions|Shorthand property names}
16+ * usage purposes)
17+ *
18+ * @see {@link https://docs.github.com/en/rest/releases/releases#list-releases|GitHub Docs }
19+ */
20+ const per_page = 100 ;
1021
1122/**
1223 * A fetch layer to reach the GitHub API
@@ -68,7 +79,7 @@ export class GitHubCache {
6879 const { data : releases } = await this . #octokit. rest . repos . listReleases ( {
6980 owner,
7081 repo,
71- per_page : PER_PAGE
82+ per_page
7283 } ) ;
7384
7485 await this . #redis. json . set ( cacheKey , "$" , releases ) ;
@@ -94,8 +105,8 @@ export class GitHubCache {
94105 const existingReleases = ( await this . #redis. json . get < GitHubRelease [ ] > ( cacheKey ) ) ?? [ ] ;
95106
96107 // Dedupe them by ID
97- const existingIds = new Set ( existingReleases . map ( release => release . id ) ) ;
98- const uniqueNewReleases = newReleases . filter ( release => ! existingIds . has ( release . id ) ) ;
108+ const existingIds = new Set ( existingReleases . map ( ( { id } ) => id ) ) ;
109+ const uniqueNewReleases = newReleases . filter ( ( { id } ) => ! existingIds . has ( id ) ) ;
99110
100111 // Merge them all
101112 const updatedReleases = [ ...existingReleases , ...uniqueNewReleases ] ;
@@ -126,7 +137,7 @@ export class GitHubCache {
126137 const { data : releases } = await this . #octokit. rest . repos . listReleases ( {
127138 owner,
128139 repo,
129- per_page : PER_PAGE
140+ per_page
130141 } ) ;
131142
132143 // Ajouter au cache pour le repo
0 commit comments