Skip to content

Commit 2a39b33

Browse files
committed
Merge branch 'master' into enhance-update
2 parents 8f36ef0 + d081ba5 commit 2a39b33

File tree

32 files changed

+60
-96
lines changed

32 files changed

+60
-96
lines changed

.changeset/proud-peas-matter.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
[breaking] remove global fetch override when prerendering

.changeset/twenty-monkeys-glow.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/kit': patch
3+
---
4+
5+
Improve error message when prefetching fails

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"turbo": "^1.3.4",
3737
"typescript": "^4.8.2"
3838
},
39-
"packageManager": "[email protected].5",
39+
"packageManager": "[email protected].6",
4040
"engines": {
4141
"pnpm": "^7.0.0"
4242
},

packages/adapter-auto/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
],
2727
"scripts": {
2828
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
29-
"format": "npm run lint -- --write",
29+
"format": "pnpm lint --write",
3030
"check": "tsc"
3131
},
3232
"dependencies": {

packages/adapter-cloudflare-workers/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
],
2626
"scripts": {
2727
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
28-
"format": "npm run lint -- --write",
28+
"format": "pnpm lint --write",
2929
"check": "tsc"
3030
},
3131
"dependencies": {

packages/adapter-cloudflare/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
"scripts": {
2828
"build": "esbuild src/worker.js --bundle --outfile=files/worker.js --external:SERVER --external:MANIFEST --format=esm",
2929
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
30-
"format": "npm run lint -- --write",
30+
"format": "pnpm lint --write",
3131
"check": "tsc --skipLibCheck",
32-
"prepublishOnly": "npm run build"
32+
"prepublishOnly": "pnpm build"
3333
},
3434
"dependencies": {
3535
"@cloudflare/workers-types": "^3.14.0",

packages/adapter-netlify/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
"test": "uvu src \"(spec\\.js|test[\\\\/]index\\.js)\"",
2929
"check": "tsc",
3030
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
31-
"format": "npm run lint -- --write",
32-
"prepublishOnly": "npm run build"
31+
"format": "pnpm lint --write",
32+
"prepublishOnly": "pnpm build"
3333
},
3434
"dependencies": {
3535
"@iarna/toml": "^2.2.5",

packages/adapter-node/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
"test": "echo \"tests temporarily disabled\" # c8 uvu tests",
2929
"check": "tsc",
3030
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
31-
"format": "npm run lint -- --write",
32-
"prepublishOnly": "npm run build"
31+
"format": "pnpm lint --write",
32+
"prepublishOnly": "pnpm build"
3333
},
3434
"devDependencies": {
3535
"@sveltejs/kit": "workspace:*",

packages/adapter-static/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"scripts": {
2222
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
2323
"check": "tsc",
24-
"format": "npm run lint -- --write",
24+
"format": "pnpm lint --write",
2525
"test": "uvu test test.js"
2626
},
2727
"devDependencies": {

packages/adapter-vercel/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
],
2525
"scripts": {
2626
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
27-
"format": "npm run lint -- --write",
27+
"format": "pnpm lint --write",
2828
"check": "tsc"
2929
},
3030
"dependencies": {

packages/amp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
],
2424
"scripts": {
2525
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
26-
"format": "npm run lint -- --write"
26+
"format": "pnpm lint --write"
2727
}
2828
}

packages/create-svelte/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@
3131
},
3232
"scripts": {
3333
"build": "node scripts/build-templates",
34-
"test": "npm run build && uvu test",
34+
"test": "pnpm build && uvu test",
3535
"check": "tsc",
3636
"lint": "prettier --check . --config ../../.prettierrc --ignore-path ../../.gitignore --ignore-path .gitignore --plugin prettier-plugin-svelte --plugin-search-dir=.",
37-
"format": "npm run lint -- --write",
38-
"prepublishOnly": "npm run build",
37+
"format": "pnpm lint --write",
38+
"prepublishOnly": "pnpm build",
3939
"postpublish": "echo \"Updating template repo\" && bash ./scripts/update-template-repo.sh"
4040
},
4141
"files": [

packages/create-svelte/test/check.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ for (const template of fs.readdirSync('templates')) {
112112
console.group(`${template}-${types}`);
113113
for (const script of scripts_to_test.filter((s) => !!pkg.scripts[s])) {
114114
try {
115-
execSync(`pnpm run ${script}`, { cwd, stdio: 'pipe' });
115+
execSync(`pnpm ${script}`, { cwd, stdio: 'pipe' });
116116
console.log(`✅ ${script}`);
117117
} catch (e) {
118118
console.error(`❌ ${script}`);

packages/kit/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,14 @@
5757
"scripts/special-types"
5858
],
5959
"scripts": {
60-
"build": "npm run types",
60+
"build": "pnpm types",
6161
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
6262
"check": "tsc",
6363
"check:all": "tsc && pnpm -r --filter=\"./**\" check",
64-
"format": "npm run lint -- --write",
65-
"prepublishOnly": "npm run build",
66-
"test": "npm run test:unit && npm run test:integration",
67-
"test:integration": "pnpm run -r --workspace-concurrency 1 --filter=\"./test/**\" test",
64+
"format": "pnpm lint --write",
65+
"prepublishOnly": "pnpm build",
66+
"test": "pnpm test:unit && pnpm test:integration",
67+
"test:integration": "pnpm -r --workspace-concurrency 1 --filter=\"./test/**\" test",
6868
"test:unit": "uvu src \"(spec\\.js|test[\\\\/]index\\.js)\"",
6969
"types": "node scripts/extract-types.js",
7070
"postinstall": "node postinstall.js"

packages/kit/src/core/prerender/prerender.js

Lines changed: 5 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -102,54 +102,15 @@ export async function prerender() {
102102
});
103103

104104
installPolyfills();
105+
106+
// TODO remove this for 1.0
105107
const { fetch } = globalThis;
106108
globalThis.fetch = async (info, init) => {
107-
/** @type {string} */
108-
let url;
109-
110-
/** @type {RequestInit} */
111-
let opts = {};
112-
113-
if (info instanceof Request) {
114-
url = info.url;
115-
116-
opts = {
117-
method: info.method,
118-
headers: info.headers,
119-
body: info.body,
120-
mode: info.mode,
121-
credentials: info.credentials,
122-
cache: info.cache,
123-
redirect: info.redirect,
124-
referrer: info.referrer,
125-
integrity: info.integrity
126-
};
127-
} else {
128-
url = info.toString();
129-
}
109+
const url = info instanceof Request ? info.url : info.toString();
130110

131111
if (url.startsWith(config.prerender.origin + '/')) {
132-
const request = new Request(url, opts);
133-
const response = await server.respond(request, {
134-
getClientAddress,
135-
prerendering: {
136-
dependencies: new Map()
137-
}
138-
});
139-
140-
const decoded = new URL(url).pathname;
141-
142-
save(
143-
'dependencies',
144-
response,
145-
Buffer.from(await response.clone().arrayBuffer()),
146-
decoded,
147-
encodeURI(decoded),
148-
null,
149-
'fetched'
150-
);
151-
152-
return response;
112+
const sliced = url.slice(config.prerender.origin.length);
113+
throw new Error(`Use \`event.fetch('${sliced}')\` instead of the global \`fetch('${url}')\``);
153114
}
154115

155116
return fetch(info, init);

packages/kit/src/runtime/client/client.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ export function create_client({ target, base, trailing_slash }) {
199199
const intent = get_navigation_intent(url, false);
200200

201201
if (!intent) {
202-
throw new Error('Attempted to prefetch a URL that does not belong to this app');
202+
throw new Error(`Attempted to prefetch a URL that does not belong to this app: ${url}`);
203203
}
204204

205205
load_cache = { id: intent.id, promise: load_route(intent) };

packages/kit/src/runtime/server/fetch.js

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@ export function create_fetch({ event, options, state, get_cookie_header }) {
1616

1717
const request_body = init?.body;
1818

19-
/** @type {import('types').PrerenderDependency} */
20-
let dependency;
21-
2219
return await options.hooks.handleFetch({
2320
event,
2421
request,
@@ -135,11 +132,6 @@ export function create_fetch({ event, options, state, get_cookie_header }) {
135132

136133
response = await respond(request, options, state);
137134

138-
if (state.prerendering) {
139-
dependency = { response, body: null };
140-
state.prerendering.dependencies.set(url.pathname, dependency);
141-
}
142-
143135
const set_cookie = response.headers.get('set-cookie');
144136
if (set_cookie) {
145137
for (const str of set_cookie_parser.splitCookiesString(set_cookie)) {

packages/kit/src/runtime/server/page/load_data.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,13 @@ export async function load_data({
106106
const url = new URL(input instanceof Request ? input.url : input, event.url);
107107
const same_origin = url.origin === event.url.origin;
108108

109-
const request_body = init?.body;
110-
const dependency = same_origin && state.prerendering?.dependencies.get(url.pathname);
109+
/** @type {import('types').PrerenderDependency} */
110+
let dependency;
111+
112+
if (same_origin && state.prerendering) {
113+
dependency = { response, body: null };
114+
state.prerendering.dependencies.set(url.pathname, dependency);
115+
}
111116

112117
const proxy = new Proxy(response, {
113118
get(response, key, _receiver) {
@@ -127,7 +132,7 @@ export async function load_data({
127132
fetched.push({
128133
url: same_origin ? url.href.slice(event.url.origin.length) : url.href,
129134
method: event.request.method,
130-
request_body: /** @type {string | ArrayBufferView | undefined} */ (request_body),
135+
request_body: /** @type {string | ArrayBufferView | undefined} */ (init?.body),
131136
response_body: body,
132137
response: response
133138
});
@@ -165,8 +170,6 @@ export async function load_data({
165170
};
166171
}
167172

168-
// TODO arrayBuffer?
169-
170173
return Reflect.get(response, key, response);
171174
}
172175
});

packages/kit/test/apps/amp/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "npm run test:dev && npm run test:build",
10+
"test": "pnpm test:dev && pnpm test:build",
1111
"test:dev": "cross-env DEV=true playwright test",
1212
"test:build": "playwright test"
1313
},

packages/kit/test/apps/basics/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "node test/setup.js && npm run test:dev && npm run test:build",
10+
"test": "node test/setup.js && pnpm test:dev && pnpm test:build",
1111
"test:dev": "rimraf test/errors.json && cross-env DEV=true playwright test",
1212
"test:build": "rimraf test/errors.json && playwright test"
1313
},
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
1-
export const actions = () => {
2-
return {};
3-
};
1+
export const actions = {};

packages/kit/test/apps/options-2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "npm run test:dev && npm run test:build",
10+
"test": "pnpm test:dev && pnpm test:build",
1111
"test:dev": "cross-env DEV=true playwright test",
1212
"test:build": "playwright test"
1313
},

packages/kit/test/apps/options/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build -c vite.custom.config.js --mode custom",
88
"preview": "vite preview -c vite.custom.config.js",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "npm run test:dev && npm run test:build",
10+
"test": "pnpm test:dev && pnpm test:build",
1111
"test:dev": "cross-env DEV=true playwright test",
1212
"test:build": "playwright test"
1313
},

packages/kit/test/apps/writes/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "npm run test:dev && npm run test:build",
10+
"test": "pnpm test:dev && pnpm test:build",
1111
"test:dev": "rimraf test/errors.json && cross-env DEV=true playwright test",
1212
"test:build": "rimraf test/errors.json && playwright test"
1313
},

packages/kit/test/prerendering/basics/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "svelte-kit sync && npm run build && uvu test"
10+
"test": "svelte-kit sync && pnpm build && uvu test"
1111
},
1212
"devDependencies": {
1313
"@sveltejs/kit": "workspace:*",

packages/kit/test/prerendering/basics/src/routes/origin/+page.server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export const prerender = true;
22

3-
export async function load({ url }) {
4-
const res = await fetch(new URL('/origin/message.json', url.origin).href);
3+
export async function load({ fetch }) {
4+
const res = await fetch('/origin/message.json');
55
const { message } = await res.json();
66

77
return {

packages/kit/test/prerendering/fallback/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "svelte-kit sync && npm run build"
10+
"test": "svelte-kit sync && pnpm build"
1111
},
1212
"devDependencies": {
1313
"@sveltejs/kit": "workspace:*",

packages/kit/test/prerendering/options/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "svelte-kit sync && npm run build && uvu test"
10+
"test": "svelte-kit sync && pnpm build && uvu test"
1111
},
1212
"devDependencies": {
1313
"@sveltejs/kit": "workspace:*",

packages/kit/test/prerendering/paths-base/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "svelte-kit sync && npm run build && uvu test"
10+
"test": "svelte-kit sync && pnpm build && uvu test"
1111
},
1212
"devDependencies": {
1313
"@sveltejs/kit": "workspace:*",

packages/kit/test/prerendering/trailing-slash/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"build": "vite build",
88
"preview": "vite preview",
99
"check": "svelte-kit sync && tsc && svelte-check",
10-
"test": "svelte-kit sync && npm run build && uvu test"
10+
"test": "svelte-kit sync && pnpm build && uvu test"
1111
},
1212
"devDependencies": {
1313
"@sveltejs/kit": "workspace:*",

packages/kit/test/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export const config = {
137137
// generous timeouts on CI
138138
timeout: process.env.CI ? 45000 : 15000,
139139
webServer: {
140-
command: process.env.DEV ? 'npm run dev' : 'npm run build && npm run preview',
140+
command: process.env.DEV ? 'pnpm dev' : 'pnpm build && pnpm preview',
141141
port: process.env.DEV ? 5173 : 4173
142142
},
143143
retries: process.env.CI ? 5 : 0,

packages/package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
"lint": "prettier --check . --config ../../.prettierrc --ignore-path .gitignore",
3737
"check": "tsc",
3838
"check:all": "tsc && pnpm -r --filter=\"./**\" check",
39-
"format": "npm run lint -- --write",
39+
"format": "pnpm lint --write",
4040
"test": "uvu test \"^index.js$\""
4141
},
4242
"exports": {

0 commit comments

Comments
 (0)