diff options
| author | Amadeus Demarzi <[email protected]> | 2025-12-17 05:33:46 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-12-17 07:33:46 -0600 |
| commit | 5c490c51edd5a8e3953fcc439d46c0e138294073 (patch) | |
| tree | 29f538fa1ad1666507960e30830b0f07db9de44a /packages/ui/src/pierre | |
| parent | 5da1c0087b7a0216bf633d12ff038422727ff235 (diff) | |
| download | opencode-5c490c51edd5a8e3953fcc439d46c0e138294073.tar.gz opencode-5c490c51edd5a8e3953fcc439d46c0e138294073.zip | |
Diffs Performance Improvements (#5653)
Co-authored-by: Adam <[email protected]>
Diffstat (limited to 'packages/ui/src/pierre')
| -rw-r--r-- | packages/ui/src/pierre/worker.ts | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/packages/ui/src/pierre/worker.ts b/packages/ui/src/pierre/worker.ts index e47268d4e..2d2640674 100644 --- a/packages/ui/src/pierre/worker.ts +++ b/packages/ui/src/pierre/worker.ts @@ -1,20 +1,28 @@ -import { getOrCreateWorkerPoolSingleton } from "@pierre/diffs/worker" +import { getOrCreateWorkerPoolSingleton, WorkerPoolManager } from "@pierre/diffs/worker" import ShikiWorkerUrl from "@pierre/diffs/worker/worker.js?worker&url" export function workerFactory(): Worker { return new Worker(ShikiWorkerUrl, { type: "module" }) } -export const workerPool = getOrCreateWorkerPoolSingleton({ - poolOptions: { - workerFactory, - // poolSize defaults to 8. More workers = more parallelism but - // also more memory. Too many can actually slow things down. - // poolSize: 8, - }, - highlighterOptions: { - theme: "OpenCode", - // Optionally preload languages to avoid lazy-loading delays - // langs: ["typescript", "javascript", "css", "html"], - }, -}) +export const workerPool: WorkerPoolManager | undefined = (() => { + if (typeof window === "undefined") { + return undefined + } + return getOrCreateWorkerPoolSingleton({ + poolOptions: { + workerFactory, + // poolSize defaults to 8. More workers = more parallelism but + // also more memory. Too many can actually slow things down. + // NOTE: 2 is probably better for OpenCode, as I think 8 might be + // a bit overkill, especially because Safari has a significantly slower + // boot up time for workers + poolSize: 2, + }, + highlighterOptions: { + theme: "OpenCode", + // Optionally preload languages to avoid lazy-loading delays + // langs: ["typescript", "javascript", "css", "html"], + }, + }) +})() |
