Skip to content

Commit 30ad83c

Browse files
authored
Merge branch 'sveltejs:master' into 4065
2 parents 8ecd2fe + 82cd1d7 commit 30ad83c

File tree

14 files changed

+126
-41
lines changed

14 files changed

+126
-41
lines changed

.changeset/pre.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,7 @@
863863
"twenty-numbers-destroy",
864864
"twenty-papayas-compare",
865865
"twenty-turkeys-promise",
866+
"twenty-windows-build",
866867
"two-buttons-eat",
867868
"two-crabs-tease",
868869
"two-moles-brush",

.changeset/twenty-windows-build.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+
generate tsconfig when running svelte-kit package

documentation/docs/80-migrating.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ This file has no equivalent in SvelteKit. Any custom logic (beyond `sapper.start
4949

5050
#### src/server.js
5151

52-
This file also has no direct equivalent, since SvelteKit apps can run in serverless environments. You can, however, use the [hooks module](/docs/hooks) to implement session logic.
52+
When using `adapter-node` the equivalent is a [custom server](https://github.com/sveltejs/kit/tree/master/packages/adapter-node#custom-server). Otherwise, this file has no direct equivalent, since SvelteKit apps can run in serverless environments. You can, however, use the [hooks module](/docs/hooks) to implement session logic.
53+
5354

5455
#### src/service-worker.js
5556

packages/adapter-cloudflare/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
},
3333
"dependencies": {
3434
"esbuild": "^0.14.21",
35-
"worktop": "0.8.0-next.13"
35+
"worktop": "0.8.0-next.14"
3636
},
3737
"devDependencies": {
3838
"@types/ws": "^8.5.3",

packages/kit/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# @sveltejs/kit
22

3+
## 1.0.0-next.327
4+
5+
### Patch Changes
6+
7+
- generate tsconfig when running svelte-kit package ([#4824](https://github.com/sveltejs/kit/pull/4824))
8+
39
## 1.0.0-next.326
410

511
### Patch Changes

packages/kit/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@sveltejs/kit",
3-
"version": "1.0.0-next.326",
3+
"version": "1.0.0-next.327",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/sveltejs/kit",

packages/kit/src/packaging/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { preprocess } from 'svelte/compiler';
66
import { copy, mkdirp, rimraf } from '../utils/filesystem.js';
77
import { analyze, generate_pkg, resolve_lib_alias, scan, strip_lang_tags, write } from './utils.js';
88
import { emit_dts, transpile_ts } from './typescript.js';
9+
import { write_tsconfig } from '../core/sync/write_tsconfig.js';
910

1011
const essential_files = ['README', 'LICENSE', 'CHANGELOG', '.gitignore', '.npmignore'];
1112

@@ -24,6 +25,9 @@ export async function build(config, cwd = process.cwd()) {
2425
rimraf(dir);
2526
mkdirp(dir);
2627

28+
// Make sure generated tsconfig is up-to-date
29+
write_tsconfig(config);
30+
2731
const files = scan(config);
2832

2933
if (config.kit.package.emitTypes) {

packages/kit/test/apps/basics/src/routes/load/fetch-headers.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
export let headers;
1717
1818
const json = JSON.stringify({
19+
connection: headers['connection'],
1920
'sec-fetch-dest': headers['sec-fetch-dest'],
2021
'sec-fetch-mode': headers['sec-fetch-mode'],
2122
'if-none-match': headers['if-none-match'],

packages/kit/test/apps/basics/src/routes/store/stuff/foo.svelte

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
<script context="module">
22
let is_first = true;
33
4-
export function load() {
4+
export function load({ url }) {
5+
if (url.searchParams.get('reset')) {
6+
is_first = true;
7+
return {};
8+
}
9+
510
if (is_first) {
611
is_first = false;
712
throw new Error('uh oh');

packages/kit/test/apps/basics/test/test.js

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,24 @@ import { start_server, test } from '../../../utils.js';
99
/** @typedef {import('@playwright/test').Response} Response */
1010

1111
test.describe.parallel('a11y', () => {
12-
test('resets focus', async ({ page, clicknav }) => {
12+
test('resets focus', async ({ page, clicknav, browserName }) => {
13+
const tab = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
14+
1315
await page.goto('/accessibility/a');
1416

1517
await clicknav('[href="/accessibility/b"]');
1618
expect(await page.innerHTML('h1')).toBe('b');
1719
expect(await page.evaluate(() => (document.activeElement || {}).nodeName)).toBe('BODY');
18-
await page.keyboard.press('Tab');
20+
await page.keyboard.press(tab);
21+
1922
expect(await page.evaluate(() => (document.activeElement || {}).nodeName)).toBe('A');
2023
expect(await page.evaluate(() => (document.activeElement || {}).textContent)).toBe('a');
2124

2225
await clicknav('[href="/accessibility/a"]');
2326
expect(await page.innerHTML('h1')).toBe('a');
2427
expect(await page.evaluate(() => (document.activeElement || {}).nodeName)).toBe('BODY');
25-
await page.keyboard.press('Tab');
28+
29+
await page.keyboard.press(tab);
2630
expect(await page.evaluate(() => (document.activeElement || {}).nodeName)).toBe('A');
2731
expect(await page.evaluate(() => (document.activeElement || {}).textContent)).toBe('a');
2832

@@ -127,11 +131,12 @@ test.describe.parallel('beforeNavigate', () => {
127131

128132
test('prevents navigation triggered by back button', async ({ page, app, baseURL }) => {
129133
await page.goto('/before-navigate/a');
130-
131134
await app.goto('/before-navigate/prevent-navigation');
135+
await page.click('h1'); // The browsers block attempts to prevent navigation on a frame that's never had a user gesture.
136+
132137
await page.goBack();
133-
expect(page.url()).toBe(baseURL + '/before-navigate/prevent-navigation');
134138
expect(await page.innerHTML('pre')).toBe('true');
139+
expect(page.url()).toBe(baseURL + '/before-navigate/prevent-navigation');
135140
});
136141

137142
test('prevents unload', async ({ page }) => {
@@ -945,7 +950,7 @@ test.describe.parallel('Errors', () => {
945950
const body = await page.textContent('body');
946951

947952
expect(body).toMatch(
948-
'Error: "error" property returned from load() must be a string or instance of Error, received type "object"'
953+
'"error" property returned from load() must be a string or instance of Error, received type "object"'
949954
);
950955
}
951956
});
@@ -1389,7 +1394,8 @@ test.describe.parallel('Load', () => {
13891394
baseURL,
13901395
page,
13911396
clicknav,
1392-
javaScriptEnabled
1397+
javaScriptEnabled,
1398+
browserName
13931399
}) => {
13941400
await page.goto('/load');
13951401
await clicknav('[href="/load/fetch-headers"]');
@@ -1403,8 +1409,11 @@ test.describe.parallel('Load', () => {
14031409
referer: `${baseURL}/load`,
14041410
// these headers aren't particularly useful, but they allow us to verify
14051411
// that page headers are being forwarded
1406-
'sec-fetch-dest': javaScriptEnabled ? 'empty' : 'document',
1407-
'sec-fetch-mode': javaScriptEnabled ? 'cors' : 'navigate'
1412+
'sec-fetch-dest':
1413+
browserName === 'webkit' ? undefined : javaScriptEnabled ? 'empty' : 'document',
1414+
'sec-fetch-mode':
1415+
browserName === 'webkit' ? undefined : javaScriptEnabled ? 'cors' : 'navigate',
1416+
connection: 'keep-alive'
14081417
});
14091418
});
14101419

@@ -1717,6 +1726,7 @@ test.describe.parallel('$app/stores', () => {
17171726
clicknav,
17181727
javaScriptEnabled
17191728
}) => {
1729+
await page.goto('/store/stuff/foo?reset=true');
17201730
const stuff1 = JSON.stringify({ name: 'SvelteKit', value: 789, error: 'uh oh' });
17211731
const stuff2 = JSON.stringify({ name: 'SvelteKit', value: 123, foo: true });
17221732
await page.goto('/store/stuff/www');
@@ -1829,7 +1839,7 @@ test.describe.parallel('Redirects', () => {
18291839
expect(page.url()).toBe(`${baseURL}/redirect`);
18301840
});
18311841

1832-
test('prevents redirect loops', async ({ baseURL, page, javaScriptEnabled }) => {
1842+
test('prevents redirect loops', async ({ baseURL, page, javaScriptEnabled, browserName }) => {
18331843
await page.goto('/redirect');
18341844

18351845
await page.click('[href="/redirect/loopy/a"]');
@@ -1843,7 +1853,11 @@ test.describe.parallel('Redirects', () => {
18431853
);
18441854
} else {
18451855
// there's not a lot we can do to handle server-side redirect loops
1846-
expect(page.url()).toBe('chrome-error://chromewebdata/');
1856+
if (browserName === 'webkit') {
1857+
expect(page.url()).toBe(`${baseURL}/redirect`);
1858+
} else {
1859+
expect(page.url()).toBe('chrome-error://chromewebdata/');
1860+
}
18471861
}
18481862
});
18491863

@@ -2124,20 +2138,20 @@ test.describe.parallel('Routing', () => {
21242138
expect(await page.textContent('h1')).toBe('a');
21252139
});
21262140

2127-
test('focus works if page load has hash', async ({ page }) => {
2141+
test('focus works if page load has hash', async ({ page, browserName }) => {
21282142
await page.goto('/routing/hashes/target#p2');
21292143

2130-
await page.keyboard.press('Tab');
2144+
await page.keyboard.press(browserName === 'webkit' ? 'Alt+Tab' : 'Tab');
21312145
expect(await page.evaluate(() => (document.activeElement || {}).textContent)).toBe(
21322146
'next focus element'
21332147
);
21342148
});
21352149

2136-
test('focus works when navigating to a hash on the same page', async ({ page }) => {
2150+
test('focus works when navigating to a hash on the same page', async ({ page, browserName }) => {
21372151
await page.goto('/routing/hashes/target');
21382152

21392153
await page.click('[href="#p2"]');
2140-
await page.keyboard.press('Tab');
2154+
await page.keyboard.press(browserName === 'webkit' ? 'Alt+Tab' : 'Tab');
21412155

21422156
expect(await page.evaluate(() => (document.activeElement || {}).textContent)).toBe(
21432157
'next focus element'

0 commit comments

Comments
 (0)