Skip to content

Commit e11d985

Browse files
Merge pull request #733 from benmccann/sveltekit2
upgrade to SvelteKit 2
2 parents 5da7952 + e0c0975 commit e11d985

File tree

31 files changed

+1261
-943
lines changed

31 files changed

+1261
-943
lines changed

package-lock.json

+1,215-880
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444
"@melt-ui/pp": "^0.1.4",
4545
"@melt-ui/svelte": "^0.61.2",
4646
"@playwright/test": "^1.37.1",
47-
"@sveltejs/adapter-static": "^2.0.3",
48-
"@sveltejs/kit": "^1.24.0",
49-
"@sveltejs/vite-plugin-svelte": "^2.4.5",
47+
"@sveltejs/adapter-static": "^3.0.1",
48+
"@sveltejs/kit": "^2.3.4",
49+
"@sveltejs/vite-plugin-svelte": "^3.0.1",
5050
"@testing-library/dom": "^9.0.1",
5151
"@testing-library/jest-dom": "^5.16.5",
5252
"@testing-library/svelte": "^4.0.3",
@@ -55,7 +55,7 @@
5555
"@types/prismjs": "^1.26.0",
5656
"@typescript-eslint/eslint-plugin": "^6.5.0",
5757
"@typescript-eslint/parser": "^6.5.0",
58-
"@vitest/ui": "^0.29.7",
58+
"@vitest/ui": "^1.2.1",
5959
"eslint": "^8.48.0",
6060
"eslint-config-prettier": "^9.0.0",
6161
"eslint-plugin-svelte": "^2.33.0",
@@ -64,15 +64,15 @@
6464
"prettier": "^3.2.2",
6565
"prettier-plugin-svelte": "^3.1.2",
6666
"sass": "^1.66.1",
67-
"svelte": "^4.2.0",
67+
"svelte": "^4.2.9",
6868
"svelte-check": "^3.5.1",
6969
"svelte-jester": "^2.3.2",
7070
"svelte-preprocess": "^5.0.4",
7171
"svelte-sequential-preprocessor": "^2.0.1",
7272
"tslib": "^2.6.2",
7373
"typescript": "^5.2.2",
74-
"vite": "^4.4.9",
75-
"vitest": "^0.29.7"
74+
"vite": "^5.0.11",
75+
"vitest": "^1.2.1"
7676
},
7777
"type": "module"
7878
}

src/routes/+layout.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const load: LayoutLoad = async ({ depends, url }) => {
2222

2323
return {
2424
account,
25-
organizations: sdk.forConsole.teams.list()
25+
organizations: await sdk.forConsole.teams.list()
2626
};
2727
} catch (error) {
2828
const acceptedRoutes = [
@@ -41,7 +41,7 @@ export const load: LayoutLoad = async ({ depends, url }) => {
4141
const redirectUrl =
4242
url.pathname && url.pathname !== '/' ? `redirect=${url.pathname}` : '';
4343
const path = url.search ? `${url.search}&${redirectUrl}` : `?${redirectUrl}`;
44-
throw redirect(303, `/login${path}`);
44+
redirect(303, `/login${path}`);
4545
}
4646
}
4747
};

src/routes/+page.ts

+2-4
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import type { PageLoad } from './$types';
44
import { user } from '$lib/stores/user';
55

66
export const load: PageLoad = async () => {
7-
if (user) {
8-
return;
9-
} else {
10-
throw redirect(302, `${base}/login`);
7+
if (!user) {
8+
redirect(302, `${base}/login`);
119
}
1210
};

src/routes/auth/magic-url/+page.svelte

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script lang="ts">
2-
import { goto } from '$app/navigation';
32
import { page } from '$app/stores';
43
import { Heading } from '$lib/components';
54
import { Account, Client } from '@appwrite.io/console';
@@ -18,7 +17,7 @@
1817
const secret = $page.url.searchParams.get('secret');
1918
2019
await account.updateMagicURLSession(userId, secret);
21-
await goto(`appwrite-callback-${projectId}://${$page.url.search}`);
20+
window.location.href = `appwrite-callback-${projectId}://${$page.url.search}`;
2221
});
2322
</script>
2423

src/routes/auth/oauth2/failure/+page.svelte

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
<script lang="ts">
2-
import { goto } from '$app/navigation';
32
import { page } from '$app/stores';
43
import { Heading } from '$lib/components';
54
65
const project = $page.url.searchParams.get('project');
76
const link = `appwrite-callback-${project}://${$page.url.search}`;
87
9-
const redirect = new Promise((resolve, reject) => {
8+
const redirect = new Promise((_resolve, reject) => {
109
if (!project) {
1110
reject('no-project');
1211
}
13-
// this timeout is needed because goto does not
14-
// throw an exception if the redirect does not work
15-
setTimeout(() => reject('timeout'), 500);
16-
// goto will resolve on successful redirect
17-
goto(link).then(resolve);
12+
window.location.href = link;
1813
});
1914
</script>
2015

src/routes/auth/oauth2/success/+page.svelte

+2-7
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
<script lang="ts">
2-
import { goto } from '$app/navigation';
32
import { page } from '$app/stores';
43
import { Heading } from '$lib/components';
54
65
const project = $page.url.searchParams.get('project');
76
const link = `appwrite-callback-${project}://${$page.url.search}`;
87
9-
const redirect = new Promise((resolve, reject) => {
8+
const redirect = new Promise((_resolve, reject) => {
109
if (!project) {
1110
reject('no-project');
1211
}
13-
// this timeout is needed because goto does not
14-
// throw an exception if the redirect does not work
15-
setTimeout(() => reject('timeout'), 500);
16-
// goto will resolve on successful redirect
17-
goto(link).then(resolve);
12+
window.location.href = link;
1813
});
1914
</script>
2015

src/routes/card/+page.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { isCloud } from '$lib/system';
22
import { redirect } from '@sveltejs/kit';
33

44
export async function load({ parent }) {
5-
if (!isCloud) throw redirect(303, '/');
5+
if (!isCloud) redirect(303, '/');
66
const { account } = await parent();
7-
if (!account) throw redirect(303, '/login');
7+
if (!account) redirect(303, '/login');
88

9-
throw redirect(303, `/card/${account.$id}`);
9+
redirect(303, `/card/${account.$id}`);
1010
}

src/routes/card/[uid]/+page.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export async function load({ params, url, parent }) {
3636
const res = await fetch(frontImg);
3737

3838
if (!res.ok) {
39-
throw redirect(303, '/');
39+
redirect(303, '/');
4040
}
4141

4242
return {
@@ -53,6 +53,6 @@ export async function load({ params, url, parent }) {
5353
};
5454
} catch (e) {
5555
console.error(e);
56-
throw redirect(303, '/');
56+
redirect(303, '/');
5757
}
5858
}

src/routes/console/+page.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ export const load: PageLoad = async ({ parent, url }) => {
88
if (organizations.total) {
99
const teamId = account.prefs.organization ?? organizations.teams[0].$id;
1010
if (!teamId) {
11-
throw redirect(303, `${base}/console/account/organizations${url.search ?? ''}`);
12-
} else throw redirect(303, `${base}/console/organization-${teamId}${url.search ?? ''}`);
11+
redirect(303, `${base}/console/account/organizations${url.search ?? ''}`);
12+
} else redirect(303, `${base}/console/organization-${teamId}${url.search ?? ''}`);
1313
} else {
14-
throw redirect(303, `${base}/console/onboarding${url.search ?? ''}`);
14+
redirect(303, `${base}/console/onboarding${url.search ?? ''}`);
1515
}
1616
};

src/routes/console/organization-[organization]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
4545
const newPrefs = { ...prefs, organization: null };
4646
sdk.forConsole.account.updatePrefs(newPrefs);
4747
localStorage.removeItem('organization');
48-
throw error(e.code, e.message);
48+
error(e.code, e.message);
4949
}
5050
};

src/routes/console/project-[project]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
2525
organization: await sdk.forConsole.teams.get(project.teamId)
2626
};
2727
} catch (e) {
28-
throw error(e.code, e.message);
28+
error(e.code, e.message);
2929
}
3030
};

src/routes/console/project-[project]/+page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ import { base } from '$app/paths';
33
import type { PageLoad } from './$types';
44

55
export const load: PageLoad = async ({ params }) => {
6-
throw redirect(302, `${base}/console/project-${params.project}/overview`);
6+
redirect(302, `${base}/console/project-${params.project}/overview`);
77
};

src/routes/console/project-[project]/auth/teams/team-[team]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1414
team: await sdk.forProject.teams.get(params.team)
1515
};
1616
} catch (e) {
17-
throw error(e.code, e.message);
17+
error(e.code, e.message);
1818
}
1919
};

src/routes/console/project-[project]/auth/usage/[[period]]/+page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export const load: PageLoad = async ({ params }) => {
1414
users: response.users as Metric[]
1515
};
1616
} catch (e) {
17-
throw error(e.code, e.message);
17+
error(e.code, e.message);
1818
}
1919
};

src/routes/console/project-[project]/auth/user-[user]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1515
user: await sdk.forProject.users.get(params.user)
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/databases/database-[database]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1515
database: await sdk.forProject.databases.get(params.database)
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
2323
])
2424
};
2525
} catch (e) {
26-
throw error(e.code, e.message);
26+
error(e.code, e.message);
2727
}
2828
};

src/routes/console/project-[project]/databases/database-[database]/collection-[collection]/document-[document]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,6 @@ export const load: LayoutLoad = async ({ params, parent, depends }) => {
4646
document
4747
};
4848
} catch (e) {
49-
throw error(e.code, e.message);
49+
error(e.code, e.message);
5050
}
5151
};

src/routes/console/project-[project]/databases/usage/[[period]]/+page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export const load: PageLoad = async ({ params }) => {
1414
databases: response.databases as Metric[]
1515
};
1616
} catch (e) {
17-
throw error(e.code, e.message);
17+
error(e.code, e.message);
1818
}
1919
};

src/routes/console/project-[project]/functions/function-[function]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
2222
])
2323
};
2424
} catch (e) {
25-
throw error(e.code, e.message);
25+
error(e.code, e.message);
2626
}
2727
};

src/routes/console/project-[project]/functions/function-[function]/usage/[[period]]/+page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: PageLoad = async ({ params }) => {
1515
executions: response.executions as Metric[]
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/overview/+page.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { selectedTab } from './store';
66

77
export const load: PageLoad = async ({ params }) => {
88
if (get(selectedTab) === 'keys') {
9-
throw redirect(302, `${base}/console/project-${params.project}/overview/keys`);
9+
redirect(302, `${base}/console/project-${params.project}/overview/keys`);
1010
} else {
11-
throw redirect(302, `${base}/console/project-${params.project}/overview/platforms`);
11+
redirect(302, `${base}/console/project-${params.project}/overview/platforms`);
1212
}
1313
};

src/routes/console/project-[project]/settings/webhooks/[webhook]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1515
webhook: await sdk.forConsole.projects.getWebhook(params.project, params.webhook)
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/storage/bucket-[bucket]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1515
bucket: await sdk.forProject.storage.getBucket(params.bucket)
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/storage/bucket-[bucket]/file-[file]/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ export const load: LayoutLoad = async ({ params, depends }) => {
1515
file: await sdk.forProject.storage.getFile(params.bucket, params.file)
1616
};
1717
} catch (e) {
18-
throw error(e.code, e.message);
18+
error(e.code, e.message);
1919
}
2020
};

src/routes/console/project-[project]/storage/usage/[[period]]/+page.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export const load: PageLoad = async ({ params }) => {
1414
buckets: response.buckets as Metric[]
1515
};
1616
} catch (e) {
17-
throw error(e.code, e.message);
17+
error(e.code, e.message);
1818
}
1919
};

src/routes/hackathon/+page.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { isCloud } from '$lib/system';
22
import { redirect } from '@sveltejs/kit';
33

44
export async function load({ parent }) {
5-
if (!isCloud) throw redirect(303, '/');
5+
if (!isCloud) redirect(303, '/');
66
const { account } = await parent();
7-
if (!account) throw redirect(303, '/login');
7+
if (!account) redirect(303, '/login');
88
}

src/routes/register/invite/+layout.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ import type { LayoutLoad } from './$types';
44

55
export const load: LayoutLoad = async () => {
66
if (isSelfHosted) {
7-
throw error(501, 'Not available in self hosted.');
7+
error(501, 'Not available in self hosted.');
88
}
99
};

tsconfig.json

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"module": "ESNext",
66
"target": "ESNext",
77
"moduleResolution": "Node",
8-
"importsNotUsedAsValues": "error",
98
"noUncheckedIndexedAccess": true,
109
"noUnusedLocals": true,
1110
"noUnusedParameters": true,

vite.config.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ const config = defineConfig({
1919
define: {
2020
'import.meta.env.VERCEL_ANALYTICS_ID': JSON.stringify(process.env.VERCEL_ANALYTICS_ID)
2121
},
22-
legacy: {
23-
buildSsrCjsExternalHeuristics: true
24-
},
2522
server: {
2623
port: 3000
2724
}
@@ -36,7 +33,7 @@ const testConfig = defineConfig({
3633
include: ['tests/unit/**/*.test.ts'],
3734
environment: 'jsdom',
3835
globals: true,
39-
threads: true,
36+
pool: 'threads',
4037
setupFiles: ['./tests/unit/setup.ts'],
4138
deps: {
4239
inline: ['@analytics/type-utils']

0 commit comments

Comments
 (0)