refactor: move the loader cache to .vitepress/cache/loaders

refactor: get releases simultaneously
This commit is contained in:
Daniil Zhuravlev
2025-10-21 00:00:59 +04:00
parent 5e1ba39511
commit 4a289f9c33
4 changed files with 22 additions and 15 deletions
-3
View File
@@ -17,8 +17,5 @@ yarn-error.log*
.zed/
.vscode/
release.data.json
changelogs.data.json
yarn.lock
pnpm-lock.yaml
+4 -1
View File
@@ -2,10 +2,12 @@ import { defineLoader } from "vitepress";
import { Octokit } from "@octokit/rest";
import type { GetResponseDataTypeFromEndpointMethod } from "@octokit/types";
import fs from "node:fs";
import { CACHE_DIR } from ".";
import { join } from "node:path";
const isDev = process.env.NODE_ENV === "development";
const CACHE_PATH = "./changelogs.data.json";
const CACHE_PATH = join(CACHE_DIR, "changelogs.data.json");
const octokit = new Octokit();
@@ -30,6 +32,7 @@ export default defineLoader({
if (isDev) {
console.log("Creating changelogs cache");
fs.mkdirSync(CACHE_DIR, { recursive: true });
fs.writeFileSync(CACHE_PATH, JSON.stringify(releases, null, 2), "utf-8");
}
+3
View File
@@ -0,0 +1,3 @@
import { join } from "node:path";
export const CACHE_DIR = join(process.cwd(), ".vitepress/cache/loaders");
+15 -11
View File
@@ -2,10 +2,12 @@ import { defineLoader } from "vitepress";
import { Octokit } from "@octokit/rest";
import type { GetResponseDataTypeFromEndpointMethod } from "@octokit/types";
import fs from "node:fs";
import { CACHE_DIR } from ".";
import { join } from "node:path";
const isDev = process.env.NODE_ENV === "development";
const CACHE_PATH = "./release.data.json";
const CACHE_PATH = join(CACHE_DIR, "release.data.json");
const octokit = new Octokit();
@@ -27,20 +29,22 @@ export default defineLoader({
return cachedData;
}
const { data: stable } = await octokit.repos.getLatestRelease({
owner: "KotatsuApp",
repo: "Kotatsu",
});
const [stable, nightly] = await Promise.all([
octokit.repos.getLatestRelease({
owner: "KotatsuApp",
repo: "Kotatsu",
}),
octokit.repos.getLatestRelease({
owner: "KotatsuApp",
repo: "Kotatsu-nightly",
}),
]);
const { data: nightly } = await octokit.repos.getLatestRelease({
owner: "KotatsuApp",
repo: "Kotatsu-nightly",
});
const releaseData = { stable, nightly };
const releaseData = { stable: stable.data, nightly: nightly.data };
if (isDev) {
console.log("Creating release cache");
fs.mkdirSync(CACHE_DIR, { recursive: true });
fs.writeFileSync(CACHE_PATH, JSON.stringify(releaseData, null, 2), "utf-8");
}