export const makeLiveSessionStore = Effect.gen(function* () {
const config = yield* ConfigStore;
const storage = yield* KeyValueStore.KeyValueStore;
const sessionStorage = storage.forSchema(Session);
const clear = pipe(sessionStorage.clear, Effect.ignore);
const current = pipe(
sessionStorage.get(config.sessionKey),
Effect.tap(Option.match({
onNone: () => Effect.logInfo("No session retrieved."),
onSome: (session) => Effect.logInfo(`Session ${session.id} retrieved.`),
})),
Effect.map(Option.getOrNull),
Effect.tapErrorCause((cause) => Effect.logError(Cause.pretty(cause))),
Effect.catchAll(() => pipe(clear, Effect.map(constNull))),
);
// ...rest of code
export const makeLiveSessionStore = Effect.gen(function* () {
const config = yield* ConfigStore;
const storage = yield* KeyValueStore.KeyValueStore;
const sessionStorage = storage.forSchema(Session);
const clear = pipe(sessionStorage.clear, Effect.ignore);
const current = pipe(
sessionStorage.get(config.sessionKey),
Effect.tap(Option.match({
onNone: () => Effect.logInfo("No session retrieved."),
onSome: (session) => Effect.logInfo(`Session ${session.id} retrieved.`),
})),
Effect.map(Option.getOrNull),
Effect.tapErrorCause((cause) => Effect.logError(Cause.pretty(cause))),
Effect.catchAll(() => pipe(clear, Effect.map(constNull))),
);
// ...rest of code