fix route registration

This commit is contained in:
creations 2024-08-12 19:19:05 -04:00
parent 032af39785
commit 95608fc0a5

View file

@ -58,7 +58,7 @@ class FastifyManager {
]; ];
for (const [routePath, prefix, recursive] of routePaths) { for (const [routePath, prefix, recursive] of routePaths) {
const modifiedRoutePath = join(environment.paths.www.root, routePath); const modifiedRoutePath: string = join(environment.paths.www.root, routePath);
let files: string[]; let files: string[];
try { try {
@ -72,27 +72,30 @@ class FastifyManager {
try { try {
const routeModule = await import(file); const routeModule = await import(file);
const { default: routeData } = routeModule; const { default: routeData } = routeModule;
if ( !routeData || !routeData.routeInfo || !routeData.route ) { if (!routeData || !routeData.routeInfo || !routeData.route) {
console.error(`Failed to load route from ${file}:`, "Route data is missing"); console.error(`Failed to load route from ${file}:`, "Route data is missing");
continue; continue;
} }
if (routeData.routeInfo.enabled && routeData.route) { if (routeData.routeInfo.enabled && routeData.route) {
const { routeInfo, route } = routeData; const { routeInfo, route } = routeData;
let routePath = routeInfo.path || "/"; let routePath = routeInfo.path || "/";
// Handle prefix and leading/trailing slashes
if (prefix) { if (prefix) {
routePath = routePath === "/" ? prefix : join(prefix, routePath); routePath = routePath === "/" ? prefix : join(prefix, routePath);
} }
// Normalize the path to avoid duplicate slashes routePath = routePath.replace(/\\/g, '/');
if (!routePath.startsWith('/')) {
routePath = '/' + routePath;
}
routePath = routePath.replace(/\/+/g, "/"); routePath = routePath.replace(/\/+/g, "/");
const methods = Array.isArray(routeInfo.method) ? routeInfo.method : [routeInfo.method]; const methods = Array.isArray(routeInfo.method) ? routeInfo.method : [routeInfo.method];
for (const method of methods) { for (const method of methods) {
this.server.route({ this.server.route({
method, method,
@ -104,7 +107,7 @@ class FastifyManager {
} catch (err) { } catch (err) {
console.error(`Failed to load route from ${file}:`, err); console.error(`Failed to load route from ${file}:`, err);
} }
} }
} }
} }