summaryrefslogtreecommitdiff
path: root/src/dev.ts
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@matthewphillips.info> 2021-04-26 16:42:11 -0400
committerGravatar GitHub <noreply@github.com> 2021-04-26 16:42:11 -0400
commit0ea4a986e207238bf0ac1db841b2a5d5b567d84d (patch)
tree17246b70fd1ab907887bea778790c2f150485c2a /src/dev.ts
parent87af0aead8db809ffea402cfc3619de8190c6c16 (diff)
downloadastro-0ea4a986e207238bf0ac1db841b2a5d5b567d84d.tar.gz
astro-0ea4a986e207238bf0ac1db841b2a5d5b567d84d.tar.zst
astro-0ea4a986e207238bf0ac1db841b2a5d5b567d84d.zip
Support 500 pages in the dev server (#131)
* Support 500 pages * Document custom 400/500 pages * Remove search from any pages not the 500 page * fix(kitchen-sink): add snowpack.config.js * fix(examples): add snowpack.config.js * style: redesign built-in 500 page Co-authored-by: Nate Moore <nate@skypack.dev>
Diffstat (limited to 'src/dev.ts')
-rw-r--r--src/dev.ts18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/dev.ts b/src/dev.ts
index 505a99425..4ca8e28e9 100644
--- a/src/dev.ts
+++ b/src/dev.ts
@@ -72,7 +72,17 @@ export default async function dev(astroConfig: AstroConfig) {
}
}
res.statusCode = 500;
- res.end(formatErrorForBrowser(result.error));
+
+ let errorResult = await runtime.load(`/500?error=${encodeURIComponent(result.error.stack || result.error.toString())}`);
+ if(errorResult.statusCode === 200) {
+ if (errorResult.contentType) {
+ res.setHeader('Content-Type', errorResult.contentType);
+ }
+ res.write(errorResult.contents);
+ } else {
+ res.write(result.error.toString());
+ }
+ res.end();
break;
}
}
@@ -85,9 +95,3 @@ export default async function dev(astroConfig: AstroConfig) {
info(logging, 'dev server', `${green('Local:')} http://${hostname}:${port}/`);
});
}
-
-/** Format error message */
-function formatErrorForBrowser(err: Error) {
- // TODO make this pretty.
- return err.toString();
-}