MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / makeCounterLive

Function makeCounterLive

apps/cloud/src/api.request-scope.node.test.ts:56–73  ·  view source on GitHub ↗
(counts: { acquires: number; releases: number }, acquireDelayMs = 0)

Source from the content-addressed store, hash-verified

54class Counter extends Context.Service<Counter, { readonly id: number }>()("test/Counter") {}
55
56const makeCounterLive = (counts: { acquires: number; releases: number }, acquireDelayMs = 0) =>
57 Layer.effect(Counter)(
58 Effect.acquireRelease(
59 Effect.gen(function* () {
60 // Yield to the event loop inside acquire to force concurrent
61 // request fibers to overlap on the shared boot MemoMap.
62 if (acquireDelayMs > 0) {
63 yield* Effect.sleep(`${acquireDelayMs} millis`);
64 }
65 counts.acquires += 1;
66 return { id: counts.acquires };
67 }),
68 () =>
69 Effect.sync(() => {
70 counts.releases += 1;
71 }),
72 ),
73 );
74
75const Routes = HttpRouter.add(
76 "GET",

Callers 1

Calls 1

syncMethod · 0.65

Tested by

no test coverage detected