MCPcopy
hub / github.com/Effect-TS/effect / resource

Function resource

packages/effect/test/Scope.test.ts:38–47  ·  view source on GitHub ↗
(id: number, ref: Ref.Ref<ReadonlyArray<Action>>)

Source from the content-addressed store, hash-verified

36const isRelease = (self: Action): self is Use => self.op === OP_RELEASE
37
38const 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
49describe("Scope", () => {
50 it.effect("runs finalizers when the scope is closed", () =>

Callers 1

Scope.test.tsFile · 0.85

Calls 5

pipeFunction · 0.90
acquireFunction · 0.70
releaseFunction · 0.70
updateMethod · 0.65
addFinalizerMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…