11import { createWebAdapter } from './webAdapter' ;
2+ import { createTauriAdapter } from './tauriAdapter' ;
23
34import { IShortcutsStore } from "@/stores/shortcutsStore" ;
45import { IStartupStore } from "@/stores/startupStore" ;
@@ -91,38 +92,9 @@ export interface PlatformAdapter {
9192 openExternal : ( url : string ) => Promise < void > ;
9293}
9394
94- let adapter : PlatformAdapter | null = null ;
95+ const appStore = JSON . parse ( localStorage . getItem ( "app-store" ) || "{}" ) ;
96+ const isTauri = appStore . state ?. isTauri ?? ! ! ( window as any ) . __TAURI__ ;
9597
96- const loadAdapter = ( ) => {
97- if ( adapter ) return adapter ;
98-
99- try {
100- const appStore = JSON . parse ( localStorage . getItem ( "app-store" ) || "{}" ) ;
101- const isTauri = appStore . state ?. isTauri ?? ! ! ( window as any ) . __TAURI__ ;
102-
103- if ( isTauri ) {
104- const { createTauriAdapter } = require ( './tauriAdapter' ) ;
105- adapter = createTauriAdapter ( ) ;
106- } else {
107- adapter = createWebAdapter ( ) ;
108- }
109- } catch ( error ) {
110- console . error ( 'Failed to load adapter:' , error ) ;
111- adapter = createWebAdapter ( ) ;
112- }
113-
114- return adapter ;
115- } ;
116-
117- // Use proxy to ensure lazy loading and singleton pattern
118- const platformAdapter = new Proxy ( { } as PlatformAdapter , {
119- get : ( _target , prop ) => {
120- const currentAdapter = loadAdapter ( ) ;
121- if ( ! currentAdapter ) {
122- throw new Error ( 'Platform adapter not initialized' ) ;
123- }
124- return currentAdapter [ prop as keyof PlatformAdapter ] ;
125- }
126- } ) ;
98+ const platformAdapter : PlatformAdapter = isTauri ? createTauriAdapter ( ) : createWebAdapter ( ) ;
12799
128100export default platformAdapter ;
0 commit comments