46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
import fs from "fs-extra";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
const root = path.resolve(__dirname, "..", "..");
|
|
const source = path.join(root, "chat", "public");
|
|
const dest = path.resolve(__dirname, "..", "ui-dist");
|
|
|
|
async function copyUi() {
|
|
if (!(await fs.pathExists(source))) {
|
|
throw new Error(`Source UI folder not found: ${source}`);
|
|
}
|
|
|
|
await fs.emptyDir(dest);
|
|
await fs.copy(source, dest, {
|
|
filter: (src) => !src.endsWith(".map") && !src.includes(".DS_Store"),
|
|
overwrite: true,
|
|
});
|
|
}
|
|
|
|
async function findHtmlFiles(dir) {
|
|
const entries = await fs.readdir(dir, { withFileTypes: true });
|
|
const files = await Promise.all(
|
|
entries.map(async (entry) => {
|
|
const full = path.join(dir, entry.name);
|
|
if (entry.isDirectory()) {
|
|
return findHtmlFiles(full);
|
|
}
|
|
return entry.isFile() && entry.name.endsWith(".html") ? [full] : [];
|
|
})
|
|
);
|
|
return files.flat();
|
|
}
|
|
|
|
async function main() {
|
|
await copyUi();
|
|
console.log(`UI prepared in ${dest}`);
|
|
}
|
|
|
|
main().catch((err) => {
|
|
console.error(err);
|
|
process.exit(1);
|
|
});
|