refactor: simplify provider snapshot timeout handling

This commit is contained in:
m4air
2026-09-07 17:42:36 -07:00
parent 791cb10fe4
commit 11e29bcdb8
@@ -143,25 +143,21 @@ export class OrcaRuntimeWithSerializeTerminalBufferFromAvailableState extends Or
}
})
}
if (acquisition.timedOut) {
return null
}
if (typeof wait.timeoutMs !== 'number') {
return acquisition.promise
}
const result = await withTimeout<
{ settled: true; value: PtyProviderBufferSnapshot | null } | { settled: false }
>(
acquisition.promise.then((value) => ({ settled: true as const, value })),
// Undefined marks a timeout; null is a settled provider with no snapshot.
const result = await withTimeout<PtyProviderBufferSnapshot | null | undefined>(
acquisition.promise,
wait.timeoutMs,
{ settled: false as const }
undefined
)
if (!result.settled) {
if (result === undefined) {
if (wait.retireOnTimeout) {
acquisition.timedOut = true
}
return null
}
return result.value
return result
}
}