Using Effect.cached with Effect.runPromiseExit Not Caching Correctly

Why is it that when I do Effect.runPromiseExit(packages) it reruns every time, even though I'm using cached??

const fetchPackages = Effect.fn("gen")(function* () {
    console.log("Fetching packages, this should only ever disply once")
    const packagesJson = yield* Effect.tryPromise(() =>
        fetch(QUOTE_PACKAGES_URL).then((res) => res.json() as unknown),
    )
    return yield* Schema.validate(CanvasPackageRecords)(packagesJson)
})

export const packages = Effect.flatten(Effect.cached(fetchPackages()))
Was this page helpful?