© 2026 Hedgehog Software, LLC
(FiberFailure) Error: Service not found: @effect/platform/HttpClient
Layer.provide(FetchHttpClient.layer)
class CatRef { public getAll: Effect.Effect<Cat[], never, never>; public fetch: (cursor: number) => Effect.Effect<Cat[], HttpClientError, any>; constructor(private ref: Ref.Ref<Cat[]>) { this.getAll = Ref.get(this.ref); this.fetch = (cursor: number) => { const result = Effect.gen(function* () { console.log("before Client"); const client = (yield* HttpClient.HttpClient).pipe( HttpClient.filterStatusOk ); console.log("after Client"); const newCatsEffect = client .get(`https://api.thecatapi.com/v1/images/search?limit=${cursor}`) .pipe( Effect.andThen((res) => res.json as any as Cat[]), Effect.scoped, Effect.retry({ times: 3 }) ); const newCats = yield* newCatsEffect; yield* Ref.update(ref, (cats) => [...cats, ...newCats]); return newCats; }); return result; }; } static make(initialCats: Cat[] = []): Effect.Effect<CatRef, never, never> { return Effect.gen(function* (_) { const ref = yield* Ref.make(initialCats); return new CatRef(ref); }); } } export class CatService extends Context.Tag("CatService")< CatService, CatRef >() { static readonly Live = Layer.effect(CatService, CatRef.make([])).pipe( Layer.provide(FetchHttpClient.layer) ); }