diff --git a/src/lib/types.ts b/src/lib/types.ts index 44d55e4c93167a409a5981e2ad8967e32fb10de2..275ca430ff0cd07e710b5208cf5a88b45b037ac4 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -38,22 +38,15 @@ export type CookieNames = { oauthCodeVerifier: string; }; +type Extract<T> = + T extends AriseIdConnect<infer Session, infer User> + ? { session: Session; user: User } + : never; + export interface Locals< T extends AriseIdConnect<DefaultSessionAttributes, DefaultUserAttributes>, > { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - user: - | ((T extends AriseIdConnect<any, infer UserAttributes> - ? UserAttributes - : never) & - User) - | null; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - session: - | ((T extends AriseIdConnect<infer SessionAttributes, any> - ? SessionAttributes - : never) & - Session) - | null; + user: (Extract<T>["user"] & User) | null; + session: (Extract<T>["session"] & Session) | null; authPaths: Paths; }