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

Function makeCounterLive

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

Source from the content-addressed store, hash-verified

33class Counter extends Context.Service<Counter, { readonly id: number }>()("test/Counter") {}
34
35const makeCounterLive = (counts: { acquires: number; releases: number }, acquireDelayMs = 0) =>
36 Layer.effect(Counter)(
37 Effect.acquireRelease(
38 Effect.gen(function* () {
39 // Yield to the event loop inside acquire to force concurrent
40 // request fibers to overlap on the shared boot MemoMap.
41 if (acquireDelayMs > 0) {
42 yield* Effect.sleep(`${acquireDelayMs} millis`);
43 }
44 counts.acquires += 1;
45 return { id: counts.acquires };
46 }),
47 () =>
48 Effect.sync(() => {
49 counts.releases += 1;
50 }),
51 ),
52 );
53
54const Routes = HttpRouter.add(
55 "GET",

Callers 1

Calls 1

syncMethod · 0.80

Tested by

no test coverage detected