Files
vereinskalender/scripts/copy-fullcalendar-css.js
2026-01-13 18:08:59 +01:00

51 lines
1.2 KiB
JavaScript

const fs = require("fs");
const path = require("path");
const mappings = [
{ pkg: "@fullcalendar/core", target: "fullcalendar-core.css" },
{ pkg: "@fullcalendar/daygrid", target: "fullcalendar-daygrid.css" },
{ pkg: "@fullcalendar/timegrid", target: "fullcalendar-timegrid.css" },
{ pkg: "@fullcalendar/list", target: "fullcalendar-list.css" }
];
const candidates = [
"main.css",
"index.css",
"style.css",
"styles.css",
"main.min.css",
"index.min.css",
"dist/main.css",
"dist/index.css"
];
const root = path.resolve(__dirname, "..");
const targetDir = path.join(root, "public", "vendor", "fullcalendar");
if (!fs.existsSync(targetDir)) {
fs.mkdirSync(targetDir, { recursive: true });
}
let missing = 0;
mappings.forEach(({ pkg, target }) => {
const basePath = path.join(root, "node_modules", pkg);
const sourcePath =
candidates
.map((candidate) => path.join(basePath, candidate))
.find((candidatePath) => fs.existsSync(candidatePath)) || null;
const targetPath = path.join(targetDir, target);
if (!sourcePath) {
console.error(`Missing FullCalendar CSS for ${pkg}`);
missing += 1;
return;
}
fs.copyFileSync(sourcePath, targetPath);
});
if (missing > 0) {
process.exit(1);
}