1
0
mirror of https://github.com/pocket-id/pocket-id.git synced 2026-02-16 11:21:12 +00:00

perf: run async operations in parallel in server load functions

This commit is contained in:
Elias Schneider
2025-04-04 11:38:09 +02:00
parent 2f7646105e
commit 1762629596
2 changed files with 22 additions and 19 deletions

View File

@@ -4,23 +4,21 @@ import UserService from '$lib/services/user-service';
import type { LayoutServerLoad } from './$types'; import type { LayoutServerLoad } from './$types';
export const load: LayoutServerLoad = async ({ cookies }) => { export const load: LayoutServerLoad = async ({ cookies }) => {
const userService = new UserService(cookies.get(ACCESS_TOKEN_COOKIE_NAME)); const accessToken = cookies.get(ACCESS_TOKEN_COOKIE_NAME);
const appConfigService = new AppConfigService(cookies.get(ACCESS_TOKEN_COOKIE_NAME)); const userService = new UserService(accessToken);
const appConfigService = new AppConfigService(accessToken);
const user = await userService const userPromise = userService.getCurrent().catch(() => null);
.getCurrent()
.then((user) => user)
.catch(() => null);
const appConfig = await appConfigService const appConfigPromise = appConfigService.list().catch((e) => {
.list()
.then((config) => config)
.catch((e) => {
console.error( console.error(
`Failed to get application configuration: ${e.response?.data.error || e.message}` `Failed to get application configuration: ${e.response?.data.error || e.message}`
); );
return null; return null;
}); });
const [user, appConfig] = await Promise.all([userPromise, appConfigPromise]);
return { return {
user, user,
appConfig appConfig

View File

@@ -4,10 +4,15 @@ import WebAuthnService from '$lib/services/webauthn-service';
import type { PageServerLoad } from './$types'; import type { PageServerLoad } from './$types';
export const load: PageServerLoad = async ({ cookies }) => { export const load: PageServerLoad = async ({ cookies }) => {
const webauthnService = new WebAuthnService(cookies.get(ACCESS_TOKEN_COOKIE_NAME)); const accessToken = cookies.get(ACCESS_TOKEN_COOKIE_NAME);
const userService = new UserService(cookies.get(ACCESS_TOKEN_COOKIE_NAME)); const webauthnService = new WebAuthnService(accessToken);
const account = await userService.getCurrent(); const userService = new UserService(accessToken);
const passkeys = await webauthnService.listCredentials();
const [account, passkeys] = await Promise.all([
userService.getCurrent(),
webauthnService.listCredentials()
]);
return { return {
account, account,
passkeys passkeys