summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-04-23 15:20:19 -0400
committerGravatar GitHub <noreply@github.com> 2021-04-23 15:20:19 -0400
commit62ddea7bb7cb91fb5091daec4ed4709742d3c123 (patch)
tree104ea208341a386d484a3663a6feb15931333027
parent3ffeb0f7b7b16f8a0939a1ae80be90cccbd98579 (diff)
downloadastro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.tar.gz
astro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.tar.zst
astro-62ddea7bb7cb91fb5091daec4ed4709742d3c123.zip
Support the /404 route in the dev server (#128)
* Support the /404 route in the dev server * Fix status code * Formatting
-rw-r--r--examples/snowpack/package-lock.json2
-rw-r--r--src/dev.ts15
2 files changed, 14 insertions, 3 deletions
diff --git a/examples/snowpack/package-lock.json b/examples/snowpack/package-lock.json
index d1731c2ec..b802bc687 100644
--- a/examples/snowpack/package-lock.json
+++ b/examples/snowpack/package-lock.json
@@ -1014,7 +1014,7 @@
"rollup": "^2.43.1",
"rollup-plugin-terser": "^7.0.2",
"sass": "^1.32.8",
- "snowpack": "^3.3.2",
+ "snowpack": "^3.3.4",
"svelte": "^3.35.0",
"tiny-glob": "^0.2.8",
"unified": "^9.2.1",
diff --git a/src/dev.ts b/src/dev.ts
index c20d9c723..505a99425 100644
--- a/src/dev.ts
+++ b/src/dev.ts
@@ -34,6 +34,7 @@ export default async function dev(astroConfig: AstroConfig) {
if (result.contentType) {
res.setHeader('Content-Type', result.contentType);
}
+ res.statusCode = 200;
res.write(result.contents);
res.end();
break;
@@ -43,8 +44,18 @@ export default async function dev(astroConfig: AstroConfig) {
const reqPath = decodeURI(fullurl.pathname);
error(logging, 'static', 'Not found', reqPath);
res.statusCode = 404;
- res.setHeader('Content-Type', 'text/plain');
- res.end('Not Found');
+
+ const fourOhFourResult = await runtime.load('/404');
+ if (fourOhFourResult.statusCode === 200) {
+ if (fourOhFourResult.contentType) {
+ res.setHeader('Content-Type', fourOhFourResult.contentType);
+ }
+ res.write(fourOhFourResult.contents);
+ } else {
+ res.setHeader('Content-Type', 'text/plain');
+ res.write('Not Found');
+ }
+ res.end();
break;
}
case 500: {