mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-23 14:33:36 +08:00
36 lines
714 B
TypeScript
36 lines
714 B
TypeScript
export type MainWindowStartupOptions = {
|
|
load: () => Promise<void>
|
|
beforeReveal: () => void
|
|
reveal: () => void
|
|
onLoadFailure: (error: unknown) => void
|
|
}
|
|
|
|
export type MainWindowStartupResult =
|
|
| { loaded: true }
|
|
| { loaded: false, error: unknown }
|
|
|
|
export async function loadAndRevealMainWindow({
|
|
load,
|
|
beforeReveal,
|
|
reveal,
|
|
onLoadFailure,
|
|
}: MainWindowStartupOptions): Promise<MainWindowStartupResult> {
|
|
let loaded = true
|
|
let loadError: unknown
|
|
try {
|
|
await load()
|
|
} catch (error) {
|
|
loaded = false
|
|
loadError = error
|
|
}
|
|
|
|
beforeReveal()
|
|
reveal()
|
|
|
|
if (!loaded) {
|
|
onLoadFailure(loadError)
|
|
return { loaded: false, error: loadError }
|
|
}
|
|
return { loaded: true }
|
|
}
|