mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-18 14:37:19 +00:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import express, { type Express } from "express";
|
|
import fs from "fs";
|
|
import path from "path";
|
|
|
|
export function serveStatic(app: Express) {
|
|
// Robust path resolution for Unikernel environment
|
|
const cwd = process.cwd();
|
|
let distPath = path.resolve(__dirname, "public");
|
|
|
|
// Fallback: If __dirname based path fails, try relative to CWD
|
|
if (!fs.existsSync(distPath)) {
|
|
// Assuming structure is /dist/public or just /public depending on how CWD is set
|
|
const altPath = path.join(cwd, "dist", "public");
|
|
if (fs.existsSync(altPath)) {
|
|
distPath = altPath;
|
|
} else {
|
|
// Try just "public" if CWD is already inside dist (unlikely but possible)
|
|
const rootPublic = path.join(cwd, "public");
|
|
if (fs.existsSync(rootPublic)) distPath = rootPublic;
|
|
}
|
|
}
|
|
|
|
if (!fs.existsSync(distPath)) {
|
|
throw new Error(`Could not find the build directory: ${distPath}`);
|
|
}
|
|
|
|
app.use(express.static(distPath));
|
|
|
|
// fall through to index.html if the file doesn't exist
|
|
app.use("*", (req, res) => {
|
|
res.sendFile(path.resolve(distPath, "index.html"));
|
|
});
|
|
}
|
|
|