From 6d9a3f2847f4742f6919c8e4746b60f3bd76a216 Mon Sep 17 00:00:00 2001 From: Ayo Date: Sat, 7 Oct 2023 22:38:35 +0200 Subject: [PATCH] feat: enable file-based pages --- package-lock.json | 6 ++++++ package.json | 1 + {public => pages}/index.html | 0 routes/[...index].ts | 7 +++++++ routes/api/stars/[org]/[repo].ts | 21 --------------------- 5 files changed, 14 insertions(+), 21 deletions(-) rename {public => pages}/index.html (100%) create mode 100644 routes/[...index].ts delete mode 100644 routes/api/stars/[org]/[repo].ts diff --git a/package-lock.json b/package-lock.json index bb463d4..88eb8de 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "dependencies": { + "fs": "^0.0.1-security", "nitropack": "latest" } }, @@ -1851,6 +1852,11 @@ "node": ">= 0.6" } }, + "node_modules/fs": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", + "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" + }, "node_modules/fs-extra": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", diff --git a/package.json b/package.json index 8565879..ee12cd0 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "preview": "node .output/server/index.mjs" }, "dependencies": { + "fs": "^0.0.1-security", "nitropack": "latest" } } diff --git a/public/index.html b/pages/index.html similarity index 100% rename from public/index.html rename to pages/index.html diff --git a/routes/[...index].ts b/routes/[...index].ts new file mode 100644 index 0000000..7e3bb5b --- /dev/null +++ b/routes/[...index].ts @@ -0,0 +1,7 @@ +import * as fs from "fs"; +export default eventHandler((event) => { + const filename = event.path === "/" ? "/index.html" : `${event.path}.html`; + const path = `./src/pages${filename}`; + const html = fs.readFileSync(path, "utf8"); + return html; +}); diff --git a/routes/api/stars/[org]/[repo].ts b/routes/api/stars/[org]/[repo].ts deleted file mode 100644 index 4e2febc..0000000 --- a/routes/api/stars/[org]/[repo].ts +++ /dev/null @@ -1,21 +0,0 @@ -export default eventHandler((event) => { - const { org, repo } = event.context.params; - - return getStars(org, repo); -}); - -type Project = { - org: string; - repo: string; - stars: string; -}; - -const getStars = async (org: string, repo: string): Promise => { - const stars = await cachedGHStars(`${org}/${repo}`); - - return { - org, - repo, - stars, - }; -};