From ba732ffcc563ba17649664ab31aeae77448705eb Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Thu, 22 Apr 2021 22:52:13 -0400 Subject: [PATCH] Don't swallow errors in hooks.js (#1178) * dont swallow hooks.js errors - fixes #1170 * fix lint errors --- .changeset/config.json | 21 +++++++++------------ .changeset/lazy-carpets-join.md | 5 +++++ .github/workflows/ci.yml | 2 +- packages/create-svelte/.gitignore | 6 +++++- packages/kit/src/core/dev/index.js | 21 ++++++++------------- 5 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 .changeset/lazy-carpets-join.md diff --git a/.changeset/config.json b/.changeset/config.json index 63e248aa20ee..b00a2573f7f8 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,13 +1,10 @@ { - "$schema": "https://unpkg.com/@changesets/config@1.4.0/schema.json", - "changelog": "@changesets/cli/changelog", - "commit": false, - "linked": [], - "access": "restricted", - "baseBranch": "master", - "updateInternalDependencies": "patch", - "ignore": [ - "hn.svelte.dev", - "svelte-kit-demo" - ] -} \ No newline at end of file + "$schema": "https://unpkg.com/@changesets/config@1.4.0/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "linked": [], + "access": "restricted", + "baseBranch": "master", + "updateInternalDependencies": "patch", + "ignore": ["hn.svelte.dev"] +} diff --git a/.changeset/lazy-carpets-join.md b/.changeset/lazy-carpets-join.md new file mode 100644 index 000000000000..b4de771cc0e3 --- /dev/null +++ b/.changeset/lazy-carpets-join.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +Report errors in hooks.js diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f70416fde60e..87dbbd750bac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -100,4 +100,4 @@ jobs: ${{ runner.os }}-${{ matrix.node-version }} - run: npm install -g pnpm - run: pnpm install --frozen-lockfile - - run: pnpm build && pnpm build --filter="svelte-kit-demo" --filter="hn.svelte.dev" + - run: pnpm build && pnpm build --filter="hn.svelte.dev" diff --git a/packages/create-svelte/.gitignore b/packages/create-svelte/.gitignore index 62647078b0d9..fd2ebcbc22da 100644 --- a/packages/create-svelte/.gitignore +++ b/packages/create-svelte/.gitignore @@ -4,4 +4,8 @@ /cli/versions.js /templates/*/.svelte -/templates/*/build \ No newline at end of file +/templates/*/build +/templates/*/.cloudflare +/templates/*/.vercel_build_output +/templates/*/.netlify +/templates/*/dist \ No newline at end of file diff --git a/packages/kit/src/core/dev/index.js b/packages/kit/src/core/dev/index.js index 60b616f778fd..48626d6bffc1 100644 --- a/packages/kit/src/core/dev/index.js +++ b/packages/kit/src/core/dev/index.js @@ -11,7 +11,7 @@ import { create_app } from '../../core/create_app/index.js'; import { rimraf } from '../filesystem/index.js'; import { ssr } from '../../runtime/server/index.js'; import { getRawBody } from '../http/index.js'; -import { copy_assets, get_no_external } from '../utils.js'; +import { copy_assets, get_no_external, resolve_entry } from '../utils.js'; import svelte from '@sveltejs/vite-plugin-svelte'; import { get_server } from '../server/index.js'; import '../../install-fetch.js'; @@ -136,19 +136,13 @@ class Watcher extends EventEmitter { if (req.url === '/favicon.ico') return; - const hooks = /** @type {import('types/internal').Hooks} */ (await this.vite - .ssrLoadModule(`/${this.config.kit.files.hooks}`) - .catch(() => ({}))); + /** @type {import('types/internal').Hooks} */ + const hooks = resolve_entry(this.config.kit.files.hooks) + ? await this.vite.ssrLoadModule(`/${this.config.kit.files.hooks}`) + : {}; - let root; - - try { - root = (await this.vite.ssrLoadModule(`/${this.dir}/generated/root.svelte`)).default; - } catch (e) { - res.statusCode = 500; - res.end(e.stack); - return; - } + const root = (await this.vite.ssrLoadModule(`/${this.dir}/generated/root.svelte`)) + .default; const rawBody = await getRawBody(req); @@ -297,6 +291,7 @@ class Watcher extends EventEmitter { } } catch (e) { this.vite.ssrFixStacktrace(e); + res.statusCode = 500; res.end(e.stack); } });