(scope: ServerScope, directory: string)
| 61 | waiter.resolve(next) |
| 62 | }, |
| 63 | wait(scope: ServerScope, directory: string) { |
| 64 | const id = key(scope, directory) |
| 65 | const current = state.get(id) |
| 66 | if (current && current.status !== "pending") return Promise.resolve(current) |
| 67 | |
| 68 | const existing = waiters.get(id) |
| 69 | if (existing) return existing.promise |
| 70 | |
| 71 | const waiter = deferred() |
| 72 | |
| 73 | waiters.set(id, waiter) |
| 74 | return waiter.promise |
| 75 | }, |
| 76 | } |