reconvert sigpro/ui

This commit is contained in:
2026-05-12 23:57:32 +02:00
parent 1800b16940
commit 2a482f2340
26 changed files with 960 additions and 641 deletions

56
dist/sigpro.vite.js vendored
View File

@@ -1,52 +1,4 @@
// src/sigpro.vite.js
function sigproRouter() {
const virtualModuleId = "virtual:sigpro-routes";
const resolvedVirtualModuleId = "\x00" + virtualModuleId;
const getFiles = (dir) => {
if (!fs.existsSync(dir))
return [];
return fs.readdirSync(dir, { recursive: true }).filter((file) => /\.(js|jsx)$/.test(file) && !path.basename(file).startsWith("_")).map((file) => path.resolve(dir, file));
};
const pathToUrl = (pagesDir, filePath) => {
let relative = path.relative(pagesDir, filePath).replace(/\\/g, "/").replace(/\.(js|jsx)$/, "").replace(/\/index$/, "").replace(/^index$/, "");
return ("/" + relative).replace(/\/+/g, "/").replace(/\[\.\.\.([^\]]+)\]/g, "*").replace(/\[([^\]]+)\]/g, ":$1").replace(/\/$/, "") || "/";
};
return {
name: "sigpro-router",
resolveId(id) {
if (id === virtualModuleId)
return resolvedVirtualModuleId;
},
load(id) {
if (id !== resolvedVirtualModuleId)
return;
const root = process.cwd();
const pagesDir = path.resolve(root, "src/pages");
const files = getFiles(pagesDir).sort((a, b) => {
const urlA = pathToUrl(pagesDir, a);
const urlB = pathToUrl(pagesDir, b);
if (urlA.includes(":") && !urlB.includes(":"))
return 1;
if (!urlA.includes(":") && urlB.includes(":"))
return -1;
return urlB.length - urlA.length;
});
let routeEntries = "";
files.forEach((fullPath) => {
const urlPath = pathToUrl(pagesDir, fullPath);
const relativeImport = "./" + path.relative(root, fullPath).replace(/\\/g, "/");
routeEntries += ` { path: '${urlPath}', component: () => import('/${relativeImport}') },
`;
});
if (!routeEntries.includes("path: '*'")) {
routeEntries += ` { path: '*', component: () => ({ default: () => document.createTextNode('404 - Not Found') }) },
`;
}
return `export const routes = [
${routeEntries}];`;
}
};
}
export {
sigproRouter
};
function g(){let u="\x00virtual:sigpro-routes",i=(e)=>{if(!fs.existsSync(e))return[];return fs.readdirSync(e,{recursive:!0}).filter((r)=>/\.(js|jsx)$/.test(r)&&!path.basename(r).startsWith("_")).map((r)=>path.resolve(e,r))},l=(e,r)=>{return("/"+path.relative(e,r).replace(/\\/g,"/").replace(/\.(js|jsx)$/,"").replace(/\/index$/,"").replace(/^index$/,"")).replace(/\/+/g,"/").replace(/\[\.\.\.([^\]]+)\]/g,"*").replace(/\[([^\]]+)\]/g,":$1").replace(/\/$/,"")||"/"};return{name:"sigpro-router",resolveId(e){if(e==="virtual:sigpro-routes")return u},load(e){if(e!==u)return;let r=process.cwd(),t=path.resolve(r,"src/pages"),p=i(t).sort((n,a)=>{let o=l(t,n),c=l(t,a);if(o.includes(":")&&!c.includes(":"))return 1;if(!o.includes(":")&&c.includes(":"))return-1;return c.length-o.length}),s="";if(p.forEach((n)=>{let a=l(t,n),o="./"+path.relative(r,n).replace(/\\/g,"/");s+=` { path: '${a}', component: () => import('/${o}') },
`}),!s.includes("path: '*'"))s+=` { path: '*', component: () => ({ default: () => document.createTextNode('404 - Not Found') }) },
`;return`export const routes = [
${s}];`}}}export{g as sigproRouter};