返回 oh-my-ppt
renderer-recovery.ts
根目录 / src / main / app / renderer-recovery.ts
1 import type { RenderProcessGoneDetails } from 'electron'
2
3 const RECOVERABLE_REASONS = new Set<RenderProcessGoneDetails['reason']>([
4 'abnormal-exit',
5 'crashed',
6 'oom'
7 ])
8
9 export const RENDERER_CRASH_WINDOW_MS = 30_000
10
11 export function shouldRecoverRenderer(reason: RenderProcessGoneDetails['reason']): boolean {
12 return RECOVERABLE_REASONS.has(reason)
13 }
14
15 export function isRepeatedRendererCrash(lastCrashAt: number, now: number): boolean {
16 return lastCrashAt > 0 && now - lastCrashAt <= RENDERER_CRASH_WINDOW_MS
17 }
18
18 lines TYPESCRIPT