simplify status code regex

This commit is contained in:
Fred K. Schott 2022-02-02 21:50:01 -08:00
parent eb29cd5d33
commit 069e497a74
2 changed files with 4 additions and 87 deletions

View file

@ -1,45 +1,4 @@
const ERROR_STATUS_CODE_REGEXES = [
/400\/?$/,
/401\/?$/,
/402\/?$/,
/403\/?$/,
/404\/?$/,
/405\/?$/,
/406\/?$/,
/407\/?$/,
/408\/?$/,
/409\/?$/,
/410\/?$/,
/411\/?$/,
/412\/?$/,
/413\/?$/,
/414\/?$/,
/415\/?$/,
/416\/?$/,
/417\/?$/,
/418\/?$/,
/421\/?$/,
/422\/?$/,
/423\/?$/,
/424\/?$/,
/425\/?$/,
/426\/?$/,
/428\/?$/,
/429\/?$/,
/431\/?$/,
/451\/?$/,
/500\/?$/,
/501\/?$/,
/502\/?$/,
/503\/?$/,
/504\/?$/,
/505\/?$/,
/506\/?$/,
/507\/?$/,
/508\/?$/,
/510\/?$/,
/511\/?$/,
];
const STATUS_CODE_PAGE_REGEXP = /\/[0-9]{3}\/?$/;
/** Construct sitemap.xml given a set of URLs */
export function generateSitemap(pages: string[]): string {
@ -50,7 +9,7 @@ export function generateSitemap(pages: string[]): string {
// copy just in case original copy is needed
// make sure that 404 page is excluded
// also works for other error pages
const urls = [...pages].filter((url) => !ERROR_STATUS_CODE_REGEXES.find((code) => code.test(url)));
const urls = [...pages].filter((url) => !STATUS_CODE_PAGE_REGEXP.test(url));
urls.sort((a, b) => a.localeCompare(b, 'en', { numeric: true })); // sort alphabetically so sitemap is same each time
let sitemap = `<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">`;
for (const url of urls) {

View file

@ -25,48 +25,7 @@ const ASTRO_PAGE_PREFIX = '@astro-page';
const ASTRO_SCRIPT_PREFIX = '@astro-script';
const ASTRO_EMPTY = '@astro-empty';
const ERROR_STATUS_CODES = [
'400',
'401',
'402',
'403',
'404',
'405',
'406',
'407',
'408',
'409',
'410',
'411',
'412',
'413',
'414',
'415',
'416',
'417',
'418',
'421',
'422',
'423',
'424',
'425',
'426',
'428',
'429',
'431',
'451',
'500',
'501',
'502',
'503',
'504',
'505',
'506',
'507',
'508',
'510',
'511',
];
const STATUS_CODE_REGEXP = /^[0-9]{3}$/;
interface PluginOptions {
astroConfig: AstroConfig;
@ -523,8 +482,7 @@ export function rollupPluginAstroBuildHTML(options: PluginOptions): VitePlugin {
let outPath: string;
// Output directly to 404.html rather than 404/index.html
// Supports any other status codes, too
if (ERROR_STATUS_CODES.find((code) => code === name) || astroConfig.buildOptions.pageUrlFormat === 'file') {
if (astroConfig.buildOptions.pageUrlFormat === 'file' || STATUS_CODE_REGEXP.test(name)) {
outPath = `${removeEndingForwardSlash(name || 'index')}.html`;
} else {
outPath = npath.posix.join(name, 'index.html');