diff options
| author | adamelmore <[email protected]> | 2026-01-24 06:57:13 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-01-24 07:00:41 -0600 |
| commit | 09f45320b7c92581e833cdfda046eb39ae7e89d9 (patch) | |
| tree | 2b1f5af08a6c7ce439de5a0191446a682c08fdae /packages/app/src/context/global-sdk.tsx | |
| parent | 962ab3bc8cf0b051e9858db0c6c3e4b96a42bf1b (diff) | |
| download | opencode-09f45320b7c92581e833cdfda046eb39ae7e89d9.tar.gz opencode-09f45320b7c92581e833cdfda046eb39ae7e89d9.zip | |
chore: cleanup
Diffstat (limited to 'packages/app/src/context/global-sdk.tsx')
| -rw-r--r-- | packages/app/src/context/global-sdk.tsx | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/packages/app/src/context/global-sdk.tsx b/packages/app/src/context/global-sdk.tsx index 7d93682bf..0cd4f6c99 100644 --- a/packages/app/src/context/global-sdk.tsx +++ b/packages/app/src/context/global-sdk.tsx @@ -24,6 +24,7 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo type Queued = { directory: string; payload: Event } let queue: Array<Queued | undefined> = [] + let buffer: Array<Queued | undefined> = [] const coalesced = new Map<string, number>() let timer: ReturnType<typeof setTimeout> | undefined let last = 0 @@ -41,10 +42,13 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo if (timer) clearTimeout(timer) timer = undefined + if (queue.length === 0) return + const events = queue - queue = [] + queue = buffer + buffer = events + queue.length = 0 coalesced.clear() - if (events.length === 0) return last = Date.now() batch(() => { @@ -53,6 +57,8 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo emitter.emit(event.directory, event.payload) } }) + + buffer.length = 0 } const schedule = () => { @@ -61,10 +67,6 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo timer = setTimeout(flush, Math.max(0, 16 - elapsed)) } - const stop = () => { - flush() - } - void (async () => { const events = await eventSdk.global.event() let yielded = Date.now() @@ -87,12 +89,12 @@ export const { use: useGlobalSDK, provider: GlobalSDKProvider } = createSimpleCo await new Promise<void>((resolve) => setTimeout(resolve, 0)) } })() - .finally(stop) + .finally(flush) .catch(() => undefined) onCleanup(() => { abort.abort() - stop() + flush() }) const sdk = createOpencodeClient({ |
