(id: number, ref: Ref.Ref<ReadonlyArray<Action>>)
| 36 | const isRelease = (self: Action): self is Use => self.op === OP_RELEASE |
| 37 | |
| 38 | const resource = (id: number, ref: Ref.Ref<ReadonlyArray<Action>>): Effect.Effect<number, never, Scope.Scope> => { |
| 39 | return pipe( |
| 40 | Ref.update(ref, (actions) => [...actions, acquire(id)]), |
| 41 | Effect.as(id), |
| 42 | Effect.uninterruptible, |
| 43 | Effect.ensuring( |
| 44 | Effect.scopeWith((scope) => scope.addFinalizer(() => Ref.update(ref, (actions) => [...actions, release(id)]))) |
| 45 | ) |
| 46 | ) |
| 47 | } |
| 48 | |
| 49 | describe("Scope", () => { |
| 50 | it.effect("runs finalizers when the scope is closed", () => |
no test coverage detected
searching dependent graphs…