const SessionFromHeaders = S.transformOrFail(
AuthenticatedHeaders,
UserSession,
(b) =>
Cookie.parse(b.Cookie).pipe(
Effect.flatMap(ReadonlyRecord.get(SESSION_COOKIE)),
Effect.flatMap(UserSession.fromString),
Effect.catchTags({
ParseError: (error) => Effect.fail(error.error),
NoSuchElementException: (error) => Effect.fail(ParseResult.type(S.string.ast, b, error.message)),
}),
),
(a) => ParseResult.fail(ParseResult.forbidden(UserSession.ast, a, "Cannot encode headers from a session")),
);
const SessionFromHeaders = S.transformOrFail(
AuthenticatedHeaders,
UserSession,
(b) =>
Cookie.parse(b.Cookie).pipe(
Effect.flatMap(ReadonlyRecord.get(SESSION_COOKIE)),
Effect.flatMap(UserSession.fromString),
Effect.catchTags({
ParseError: (error) => Effect.fail(error.error),
NoSuchElementException: (error) => Effect.fail(ParseResult.type(S.string.ast, b, error.message)),
}),
),
(a) => ParseResult.fail(ParseResult.forbidden(UserSession.ast, a, "Cannot encode headers from a session")),
);