MCPcopy Index your code
hub / github.com/Effect-TS/effect / lookup

Function lookup

packages/effect/test/utils/cache/WatchableLookup.ts:48–70  ·  view source on GitHub ↗
(key: Key)

Source from the content-addressed store, hash-verified

46 ),
47 ([blocked, resources]): WatchableLookup<Key, Value, Error> => {
48 function lookup(key: Key): Effect.Effect<Value, Error, Scope.Scope> {
49 return Effect.flatten(Effect.gen(function*() {
50 const observableResource = yield* ObservableResource.makeEffect(concreteLookup(key))
51 yield* Ref.update(resources, (resourceMap) => {
52 const newResource = pipe(
53 HashMap.get(resourceMap, key),
54 Option.getOrElse(() => Chunk.empty<ObservableResource.ObservableResource<Error, Value>>()),
55 Chunk.append(observableResource)
56 )
57 return HashMap.set(resourceMap, key, newResource)
58 })
59 const schedule = Schedule.intersect(
60 Schedule.recurWhile<boolean>(identity),
61 Schedule.exponential(Duration.millis(10), 2.0)
62 )
63 yield* pipe(
64 Ref.get(blocked),
65 Effect.repeat(schedule),
66 TestServices.provideLive
67 )
68 return observableResource.scoped
69 }))
70 }
71 const lock = () => Ref.set(blocked, true)
72 const unlock = () => Ref.set(blocked, false)
73 const createdResources = () => Ref.get(resources)

Callers 2

LayerMap.tsFile · 0.85
ResourceMapClass · 0.85

Calls 4

updateMethod · 0.65
getMethod · 0.65
setMethod · 0.65
pipeFunction · 0.50

Tested by

no test coverage detected