worker-pool.tsx 573 B

1234567891011121314151617181920
  1. import type { WorkerPoolManager } from "@pierre/diffs/worker"
  2. import { createSimpleContext } from "./helper"
  3. export type WorkerPools = {
  4. unified: WorkerPoolManager | undefined
  5. split: WorkerPoolManager | undefined
  6. }
  7. const ctx = createSimpleContext<WorkerPools, { pools: WorkerPools }>({
  8. name: "WorkerPool",
  9. init: (props) => props.pools,
  10. })
  11. export const WorkerPoolProvider = ctx.provider
  12. export function useWorkerPool(diffStyle: "unified" | "split" | undefined) {
  13. const pools = ctx.use()
  14. if (diffStyle === "split") return pools.split
  15. return pools.unified
  16. }