* @since 3.20.0 * @category constructors
(
scheduleDrain: (depth: number, drain: (depth: number) => void) => void
)
| 67 | * @category constructors |
| 68 | */ |
| 69 | static cached( |
| 70 | scheduleDrain: (depth: number, drain: (depth: number) => void) => void |
| 71 | ) { |
| 72 | const fallback = new SchedulerRunner(scheduleDrain) |
| 73 | const runners = new WeakMap<RuntimeFiber<unknown, unknown>, SchedulerRunner>() |
| 74 | |
| 75 | return (fiber?: RuntimeFiber<unknown, unknown>) => { |
| 76 | if (fiber === undefined) { |
| 77 | return fallback |
| 78 | } |
| 79 | let runner = runners.get(fiber) |
| 80 | if (runner === undefined) { |
| 81 | runner = new SchedulerRunner(scheduleDrain) |
| 82 | runners.set(fiber, runner) |
| 83 | } |
| 84 | return runner |
| 85 | } |
| 86 | } |
| 87 | } |
| 88 | |
| 89 | /** |
no test coverage detected