(address: string, owner: Owner)
| 42 | const cacheKey = (owner: Owner, address: string) => `${owner}:${address}`; |
| 43 | |
| 44 | const load = (address: string, owner: Owner): Effect.Effect<ObservedShape | null> => |
| 45 | Effect.gen(function* () { |
| 46 | const key = cacheKey(owner, address); |
| 47 | const hit = cache.get(key); |
| 48 | if (hit !== undefined) return hit; |
| 49 | const entry = yield* storage |
| 50 | .getForOwner<ObservedShape>({ owner, collection: COLLECTION, key: address }) |
| 51 | .pipe(Effect.catch(() => Effect.succeed(null))); |
| 52 | const record = entry?.data ?? null; |
| 53 | cache.set(key, record); |
| 54 | if (record !== null) persisted.set(key, JSON.stringify(record.schema)); |
| 55 | return record; |
| 56 | }); |
| 57 | |
| 58 | const observe = (address: string, owner: Owner, value: unknown): Effect.Effect<void> => |
| 59 | Effect.gen(function* () { |
no test coverage detected