From 069e497a74ffbba644916980b1873ebbf01bfbd5 Mon Sep 17 00:00:00 2001 From: "Fred K. Schott" Date: Wed, 2 Feb 2022 21:50:01 -0800 Subject: [PATCH] simplify status code regex --- packages/astro/src/core/ssr/sitemap.ts | 45 +----------------- .../astro/src/vite-plugin-build-html/index.ts | 46 +------------------ 2 files changed, 4 insertions(+), 87 deletions(-) diff --git a/packages/astro/src/core/ssr/sitemap.ts b/packages/astro/src/core/ssr/sitemap.ts index c4f85b556..a5ef54f6a 100644 --- a/packages/astro/src/core/ssr/sitemap.ts +++ b/packages/astro/src/core/ssr/sitemap.ts @@ -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 = ``; for (const url of urls) { diff --git a/packages/astro/src/vite-plugin-build-html/index.ts b/packages/astro/src/vite-plugin-build-html/index.ts index 33b4ab70f..48bb617c9 100644 --- a/packages/astro/src/vite-plugin-build-html/index.ts +++ b/packages/astro/src/vite-plugin-build-html/index.ts @@ -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');