mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
refactor: iterate pages
This commit is contained in:
@@ -62,17 +62,26 @@ export const getUpdateData = async (): Promise<IUpdateData> => {
|
|||||||
return DEFAULT_UPDATE_DATA;
|
return DEFAULT_UPDATE_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
const url = "https://hub.docker.com/v2/repositories/dokploy/dokploy/tags";
|
const baseUrl = "https://hub.docker.com/v2/repositories/dokploy/dokploy/tags";
|
||||||
const response = await fetch(url, {
|
let url: string | null = `${baseUrl}?page_size=100`;
|
||||||
method: "GET",
|
let allResults: { digest: string; name: string }[] = [];
|
||||||
headers: { "Content-Type": "application/json" },
|
|
||||||
});
|
|
||||||
|
|
||||||
const data = (await response.json()) as {
|
while (url) {
|
||||||
results: [{ digest: string; name: string }];
|
const response = await fetch(url, {
|
||||||
};
|
method: "GET",
|
||||||
const { results } = data;
|
headers: { "Content-Type": "application/json" },
|
||||||
const latestTagDigest = results.find(
|
});
|
||||||
|
|
||||||
|
const data = (await response.json()) as {
|
||||||
|
next: string | null;
|
||||||
|
results: { digest: string; name: string }[];
|
||||||
|
};
|
||||||
|
|
||||||
|
allResults = allResults.concat(data.results);
|
||||||
|
url = data?.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
const latestTagDigest = allResults.find(
|
||||||
(t) => t.name === getDokployImageTag(),
|
(t) => t.name === getDokployImageTag(),
|
||||||
)?.digest;
|
)?.digest;
|
||||||
|
|
||||||
@@ -80,7 +89,7 @@ export const getUpdateData = async (): Promise<IUpdateData> => {
|
|||||||
return DEFAULT_UPDATE_DATA;
|
return DEFAULT_UPDATE_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
const versionedTag = results.find(
|
const versionedTag = allResults.find(
|
||||||
(t) => t.digest === latestTagDigest && t.name.startsWith("v"),
|
(t) => t.digest === latestTagDigest && t.name.startsWith("v"),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -89,7 +98,6 @@ export const getUpdateData = async (): Promise<IUpdateData> => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { name: latestVersion, digest } = versionedTag;
|
const { name: latestVersion, digest } = versionedTag;
|
||||||
|
|
||||||
const updateAvailable = digest !== currentDigest;
|
const updateAvailable = digest !== currentDigest;
|
||||||
|
|
||||||
return { latestVersion, updateAvailable };
|
return { latestVersion, updateAvailable };
|
||||||
|
|||||||
Reference in New Issue
Block a user