fix: improve redirect map file discovery

- Fix fallback logic (empty object is truthy)
- Try multiple paths for Docker and local dev
- Add debug logging for file discovery

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ricardo
2026-01-24 15:13:11 +01:00
parent 46f4559fe3
commit 3c21393989
+29 -11
View File
@@ -74,20 +74,38 @@ function mergeAliases(...maps) {
return merged; return merged;
} }
// Parse redirect maps from package root (one level up from _data) // Parse redirect maps from /app/pkg (Docker) or parent directory (local dev)
// In Docker: eleventy-site is at /app/pkg/eleventy-site, maps are at /app/pkg/
// In local dev: maps might be at ../
const pkgRoot = resolve(__dirname, "../.."); const pkgRoot = resolve(__dirname, "../..");
// Try multiple possible locations // Helper to find first existing file
const mapLocations = [ function findFile(candidates) {
resolve(pkgRoot, "redirects.map.rmendes"), for (const path of candidates) {
resolve(pkgRoot, "old-blog-redirects.map.rmendes"), if (existsSync(path)) {
// Fallback to template files if .rmendes versions don't exist console.log(`[urlAliases] Found: ${path}`);
resolve(pkgRoot, "redirects.map"), return path;
resolve(pkgRoot, "old-blog-redirects.map"), }
]; }
console.log(`[urlAliases] No file found in: ${candidates.join(", ")}`);
return null;
}
const microblogAliases = parseRedirectMap(mapLocations[0]) || parseRedirectMap(mapLocations[2]); // Try multiple possible locations for each map type
const knownAliases = parseRedirectMap(mapLocations[1]) || parseRedirectMap(mapLocations[3]); const microblogMapPath = findFile([
resolve(pkgRoot, "redirects.map"),
resolve(pkgRoot, "redirects.map.rmendes"),
resolve(__dirname, "../../redirects.map"),
]);
const knownMapPath = findFile([
resolve(pkgRoot, "old-blog-redirects.map"),
resolve(pkgRoot, "old-blog-redirects.map.rmendes"),
resolve(__dirname, "../../old-blog-redirects.map"),
]);
const microblogAliases = microblogMapPath ? parseRedirectMap(microblogMapPath) : {};
const knownAliases = knownMapPath ? parseRedirectMap(knownMapPath) : {};
const allAliases = mergeAliases(microblogAliases, knownAliases); const allAliases = mergeAliases(microblogAliases, knownAliases);