11import fs from 'fs' ;
2- import { type HandleServerError , redirect , type RequestEvent } from '@sveltejs/kit' ;
2+ import {
3+ type HandleServerError ,
4+ redirect ,
5+ type RequestEvent ,
6+ type ServerInit
7+ } from '@sveltejs/kit' ;
38import { env } from '$env/dynamic/private' ;
49import { defaultLocale , Locales } from '$lib/i18n/locales' ;
510import { DERIVED_LENSES } from '$lib/types/display' ;
@@ -20,16 +25,24 @@ import { updateSettings } from '$lib/utils/userSettings.svelte';
2025
2126type QualifierSuggestionsByLocale = Record < keyof typeof Locales , QualifierSuggestion2 [ ] > ;
2227type Util = [ VocabUtil , DisplayUtil , QualifierSuggestionsByLocale ] ;
23- let utilCache : Util | undefined ;
24- let initLibraries : boolean = false ;
28+ let utilCache : Promise < Util > | undefined ;
29+
30+ // Warm up caches immediately on startup instead of waiting for a request
31+ export const init : ServerInit = async ( ) => {
32+ try {
33+ const [ , displayUtil ] = await loadUtilCached ( ) ;
34+ startRefreshLibraries ( displayUtil , defaultLocale ) ;
35+ } catch ( err ) {
36+ // This is OK, handle() will retry
37+ console . error ( 'Startup initialization failed:' , err ) ;
38+ }
39+ } ;
2540
2641export const handle = async ( { event, resolve } ) => {
2742 const [ vocabUtil , displayUtil , qualifierSuggestionsByLocale ] = await loadUtilCached ( ) ;
2843
29- if ( ! initLibraries ) {
30- initLibraries = true ;
31- await startRefreshLibraries ( displayUtil , defaultLocale ) ;
32- }
44+ // Fallback in case startup init failed. No-op if refresh already started.
45+ startRefreshLibraries ( displayUtil , defaultLocale ) ;
3346
3447 event . locals . vocab = vocabUtil ;
3548 event . locals . display = displayUtil ;
@@ -192,9 +205,12 @@ function isValidMyLibraries(value: unknown): value is MyLibrariesType {
192205 return true ;
193206}
194207
195- async function loadUtilCached ( ) {
208+ function loadUtilCached ( ) {
196209 if ( ! utilCache ) {
197- utilCache = await loadUtil ( ) ;
210+ utilCache = loadUtil ( ) . catch ( ( err ) => {
211+ utilCache = undefined ;
212+ throw err ;
213+ } ) ;
198214 }
199215 return utilCache ;
200216}
0 commit comments