feat: use pages directory for custom server assets

This commit is contained in:
Ayo 2023-10-07 23:51:40 +02:00
parent 77a93f8507
commit f6ed8ead7b
3 changed files with 12 additions and 10 deletions

View file

@ -1,9 +1,9 @@
//https://nitro.unjs.io/config
export default defineNitroConfig({
devStorage: {
db: {
driver: "fs",
base: "./data/db",
serverAssets: [
{
baseName: "pages",
dir: "./pages",
},
},
],
});

View file

@ -4,7 +4,8 @@
"prepare": "nitropack prepare",
"dev": "nitropack dev",
"build": "nitropack build",
"preview": "node .output/server/index.mjs"
"preview": "node .output/server/index.mjs",
"build:preview": "npm run build && npm run preview"
},
"dependencies": {
"fs": "^0.0.1-security",

View file

@ -1,14 +1,15 @@
import * as fs from "fs";
export default eventHandler((event) => {
export default eventHandler(async (event) => {
const filename = event.path === "/" ? "/index.html" : `${event.path}.html`;
const fallback = getPath(event.path + "/index.html");
const path = getPath(filename);
let html = "";
try {
html = fs.readFileSync(path, "utf8");
html = await useStorage().getItem(path);
} catch (error) {
try {
html = fs.readFileSync(fallback, "utf8");
html = await useStorage().getItem(fallback);
} catch {
html = `cannot find ${path} or ${fallback}`;
}
@ -18,5 +19,5 @@ export default eventHandler((event) => {
});
function getPath(filename: string) {
return `./pages${filename}`;
return `assets/pages${filename}`;
}