summaryrefslogtreecommitdiff
path: root/src/dev.ts
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-04-30 16:33:35 -0500
committerGravatar GitHub <noreply@github.com> 2021-04-30 16:33:35 -0500
commit4df1347156cf2632ea2f3475d3a5f8f08d197cc3 (patch)
tree9d50de89dfe62827c32a8a4046120af4ab61dc0c /src/dev.ts
parent1d498facc8f78a3ffbfecd05cc6ecd45e8a4a1ae (diff)
downloadastro-4df1347156cf2632ea2f3475d3a5f8f08d197cc3.tar.gz
astro-4df1347156cf2632ea2f3475d3a5f8f08d197cc3.tar.zst
astro-4df1347156cf2632ea2f3475d3a5f8f08d197cc3.zip
Migrate to `yarn` monorepo (#157)
* chore: use monorepo * chore: scaffold astro-scripts * chore: move tests inside packages/astro * chore: refactor tests, add scripts * chore: move parser to own module * chore: move runtime to packages/astro * fix: move parser to own package * test: fix prettier-plugin-astro tests * fix: tests * chore: update package-lock * chore: add changesets * fix: cleanup examples * fix: starter example * chore: update changeset config * chore: update changeset config * chore: setup changeset release workflow * chore: bump lockfiles * chore: prism => astro-prism * fix: tsc --emitDeclarationOnly * chore: final cleanup, switch to yarn * chore: add lerna * chore: update workflows to yarn * chore: update workflows * chore: remove lint workflow * chore: add astro-dev script * chore: add symlinked README
Diffstat (limited to 'src/dev.ts')
-rw-r--r--src/dev.ts97
1 files changed, 0 insertions, 97 deletions
diff --git a/src/dev.ts b/src/dev.ts
deleted file mode 100644
index 4ca8e28e9..000000000
--- a/src/dev.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import type { AstroConfig } from './@types/astro';
-import type { LogOptions } from './logger.js';
-
-import { logger as snowpackLogger } from 'snowpack';
-import { bold, green } from 'kleur/colors';
-import http from 'http';
-import { relative as pathRelative } from 'path';
-import { performance } from 'perf_hooks';
-import { defaultLogDestination, error, info, parseError } from './logger.js';
-import { createRuntime } from './runtime.js';
-
-const hostname = '127.0.0.1';
-
-// Disable snowpack from writing to stdout/err.
-snowpackLogger.level = 'silent';
-
-const logging: LogOptions = {
- level: 'debug',
- dest: defaultLogDestination,
-};
-
-/** The primary dev action */
-export default async function dev(astroConfig: AstroConfig) {
- const startServerTime = performance.now();
- const { projectRoot } = astroConfig;
-
- const runtime = await createRuntime(astroConfig, { mode: 'development', logging });
-
- const server = http.createServer(async (req, res) => {
- const result = await runtime.load(req.url);
-
- switch (result.statusCode) {
- case 200: {
- if (result.contentType) {
- res.setHeader('Content-Type', result.contentType);
- }
- res.statusCode = 200;
- res.write(result.contents);
- res.end();
- break;
- }
- case 404: {
- const fullurl = new URL(req.url || '/', 'https://example.org/');
- const reqPath = decodeURI(fullurl.pathname);
- error(logging, 'static', 'Not found', reqPath);
- res.statusCode = 404;
-
- 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: {
- switch (result.type) {
- case 'parse-error': {
- const err = result.error;
- err.filename = pathRelative(projectRoot.pathname, err.filename);
- parseError(logging, err);
- break;
- }
- default: {
- error(logging, 'executing astro', result.error);
- break;
- }
- }
- res.statusCode = 500;
-
- 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;
- }
- }
- });
-
- const port = astroConfig.devOptions.port;
- server.listen(port, hostname, () => {
- const endServerTime = performance.now();
- info(logging, 'dev server', green(`Server started in ${Math.floor(endServerTime - startServerTime)}ms.`));
- info(logging, 'dev server', `${green('Local:')} http://${hostname}:${port}/`);
- });
-}