mirror of
https://github.com/KotatsuApp/website.git
synced 2026-08-19 20:40:48 -07:00
refactor: move the loader cache to .vitepress/cache/loaders
refactor: get releases simultaneously
This commit is contained in:
@@ -17,8 +17,5 @@ yarn-error.log*
|
||||
.zed/
|
||||
.vscode/
|
||||
|
||||
release.data.json
|
||||
changelogs.data.json
|
||||
|
||||
yarn.lock
|
||||
pnpm-lock.yaml
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
import { join } from "node:path";
|
||||
|
||||
export const CACHE_DIR = join(process.cwd(), ".vitepress/cache/loaders");
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user