Only print file output only for 404 and 500 routes (#4497)

* fix: print file output only for 404 and 500 routes

* chore: changeset
This commit is contained in:
Ben Holmes 2022-08-26 11:35:30 -04:00 committed by GitHub
parent 839f3e955a
commit 78e06c8ec0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 5 deletions

View file

@ -0,0 +1,5 @@
---
'astro': patch
---
Production build logging - Only log `[code].html` instead of `[code]/index.html` for 404 and 500 routes

View file

@ -26,7 +26,7 @@ export function padMultilineString(source: string, n = 2) {
return lines.map((l) => ` `.repeat(n) + l).join(`\n`);
}
const STATUS_CODE_REGEXP = /^\/?[0-9]{3}$/;
const REGEXP_404_OR_500_ROUTE = /(404)|(500)\/?$/;
/**
* Get the correct output filename for a route, based on your config.
@ -37,14 +37,13 @@ export function getOutputFilename(astroConfig: AstroConfig, name: string, type:
if (type === 'endpoint') {
return name;
}
if (name === '/' || name === '') {
return path.posix.join(name, 'index.html');
}
if (astroConfig.build.format === 'directory' && !STATUS_CODE_REGEXP.test(name)) {
return path.posix.join(name, 'index.html');
if (astroConfig.build.format === 'file' || REGEXP_404_OR_500_ROUTE.test(name)) {
return `${removeTrailingForwardSlash(name || 'index')}.html`;
}
return `${removeTrailingForwardSlash(name || 'index')}.html`;
return path.posix.join(name, 'index.html');
}
/** is a specifier an npm package? */