summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/global-sdk.tsx
diff options
context:
space:
mode:
authoradamelmore <[email protected]>2026-01-24 06:57:13 -0600
committerAdam <[email protected]>2026-01-24 07:00:41 -0600
commit09f45320b7c92581e833cdfda046eb39ae7e89d9 (patch)
tree2b1f5af08a6c7ce439de5a0191446a682c08fdae /packages/app/src/context/global-sdk.tsx
parent962ab3bc8cf0b051e9858db0c6c3e4b96a42bf1b (diff)
downloadopencode-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.tsx18
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({