Skip to content

Commit e2f1b3f

Browse files
committed
fix: Externalize app initialization to adapters
Fixes #1784
1 parent ae3ef19 commit e2f1b3f

File tree

8 files changed

+39
-13
lines changed

8 files changed

+39
-13
lines changed

.changeset/polite-ducks-notice.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
'@sveltejs/adapter-cloudflare-workers': patch
3+
'@sveltejs/adapter-netlify': patch
4+
'@sveltejs/adapter-node': patch
5+
'@sveltejs/adapter-vercel': patch
6+
'@sveltejs/kit': patch
7+
---
8+
9+
Externalize app initialization to adapters

packages/adapter-cloudflare-workers/files/entry.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// TODO hardcoding the relative location makes this brittle
2-
import { render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
2+
import { init, render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
33
import { getAssetFromKV, NotFoundError } from '@cloudflare/kv-asset-handler'; // eslint-disable-line import/no-unresolved
44

5+
init();
56
addEventListener('fetch', (event) => {
67
event.respondWith(handle(event));
78
});

packages/adapter-netlify/files/entry.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import '@sveltejs/kit/install-fetch'; // eslint-disable-line import/no-unresolved
22

33
// TODO hardcoding the relative location makes this brittle
4-
import { render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
4+
import { init, render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
55

6+
init();
67
export async function handler(event) {
78
const { path, httpMethod, headers, rawQuery, body, isBase64Encoded } = event;
89

packages/adapter-node/src/index.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import './require_shim';
22
import { createServer } from './server';
33
// TODO hardcoding the relative location makes this brittle
4-
import { render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
4+
import { init, render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
55
import { host, port } from './env.js'; // eslint-disable-line import/no-unresolved
66

7+
init();
78
const instance = createServer({ render }).listen(port, host, () => {
89
console.log(`Listening on port ${port}`);
910
});
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
import { createRequire } from 'module';
2-
global.require = createRequire(import.meta.url);
2+
globalThis.require = createRequire(import.meta.url);

packages/adapter-vercel/files/entry.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ import { getRawBody } from '@sveltejs/kit/node'; // eslint-disable-line import/n
22
import '@sveltejs/kit/install-fetch'; // eslint-disable-line import/no-unresolved
33

44
// TODO hardcoding the relative location makes this brittle
5-
import { render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
5+
import { init, render } from '../output/server/app.js'; // eslint-disable-line import/no-unresolved
66

7+
init();
78
export default async (req, res) => {
89
const { pathname, searchParams } = new URL(req.url || '', 'http://localhost');
910

packages/kit/src/core/build/index.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -285,9 +285,11 @@ async function build_server(
285285
286286
let options = null;
287287
288+
const default_settings = { paths: ${s(config.kit.paths)} };
289+
288290
// allow paths to be overridden in svelte-kit preview
289291
// and in prerendering
290-
export function init(settings) {
292+
export function init(settings = default_settings) {
291293
set_paths(settings.paths);
292294
set_prerendering(settings.prerendering || false);
293295
@@ -380,8 +382,6 @@ async function build_server(
380382
};
381383
}
382384
383-
init({ paths: ${s(config.kit.paths)} });
384-
385385
export function render(request, {
386386
prerender
387387
} = {}) {

packages/kit/src/install-fetch.js

+18-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1-
// @ts-nocheck
21
import fetch, { Response, Request, Headers } from 'node-fetch';
32

4-
globalThis.fetch = fetch;
5-
globalThis.Response = Response;
6-
globalThis.Request = Request;
7-
globalThis.Headers = Headers;
3+
Object.defineProperties(globalThis, {
4+
fetch: {
5+
enumerable: true,
6+
value: fetch
7+
},
8+
Response: {
9+
enumerable: true,
10+
value: Response
11+
},
12+
Request: {
13+
enumerable: true,
14+
value: Request
15+
},
16+
Headers: {
17+
enumerable: true,
18+
value: Headers
19+
}
20+
});

0 commit comments

Comments
 (0)