diff options
author | 2021-04-30 16:33:35 -0500 | |
---|---|---|
committer | 2021-04-30 16:33:35 -0500 | |
commit | 4df1347156cf2632ea2f3475d3a5f8f08d197cc3 (patch) | |
tree | 9d50de89dfe62827c32a8a4046120af4ab61dc0c /src/dev.ts | |
parent | 1d498facc8f78a3ffbfecd05cc6ecd45e8a4a1ae (diff) | |
download | astro-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.ts | 97 |
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}/`); - }); -} |