fix(core): defer cyclic layer dependencies

This commit is contained in:
Dax Raad 2026-07-17 20:25:21 -04:00
commit c4830c147d
4 changed files with 16 additions and 3 deletions

View file

@ -37,6 +37,12 @@ describe("layer node", () => {
expect(await Effect.runPromise(program)).toBe("hello production")
})
test("resolves lazy dependencies when compiling", async () => {
const greeting = make({ service: Greeting, layer: greetingLayer, deps: () => [value] })
const program = Effect.map(Greeting, (item) => item.value).pipe(Effect.provide(build(greeting)))
expect(await Effect.runPromise(program)).toBe("hello production")
})
test("exposes roots but hides transitive dependencies", () => {
const layer = build(LayerNode.group([greeting]))
const check: Layer.Layer<Greeting> = layer