UNPKG

@buiducnhat/nest-better-auth

Version:

NestJs Better Auth package, work with express and fastify

50 lines (40 loc) 2.33 kB
import { BetterAuthOptions, betterAuth, Auth } from 'better-auth'; import { getSession } from 'better-auth/api'; import * as _nestjs_common from '@nestjs/common'; import { NestModule, DynamicModule, MiddlewareConsumer, CanActivate, ExecutionContext, createParamDecorator } from '@nestjs/common'; import { Reflector } from '@nestjs/core'; type UserSession<T extends BetterAuthOptions = BetterAuthOptions> = NonNullable<Awaited<ReturnType<ReturnType<typeof getSession<T>>>>>; type User<T extends BetterAuthOptions = BetterAuthOptions> = UserSession<T>["user"]; type RoutingProvider = "express" | "fastify"; interface AuthModuleOptions { betterAuth: ReturnType<typeof betterAuth>; options?: { routingProvider?: RoutingProvider; jsonParser?: boolean; }; } declare const BETTER_AUTH_INSTANCE_TOKEN: unique symbol; declare const AUTH_MODULE_OPTIONS_TOKEN: unique symbol; declare const IS_PUBLIC_KEY: unique symbol; declare const ConfigurableModuleClass: _nestjs_common.ConfigurableModuleCls<AuthModuleOptions, "register", "create", {}>; declare const OPTIONS_TYPE: AuthModuleOptions & Partial<{}>; declare const ASYNC_OPTIONS_TYPE: _nestjs_common.ConfigurableModuleAsyncOptions<AuthModuleOptions, "create"> & Partial<{}>; declare class AuthModule extends ConfigurableModuleClass implements NestModule { private readonly auth; private readonly options; private readonly logger; static forRoot(options: typeof OPTIONS_TYPE): DynamicModule; static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule; constructor(auth: Auth, options: AuthModuleOptions["options"]); configure(consumer: MiddlewareConsumer): void; } declare class AuthGuard implements CanActivate { private readonly reflector; private readonly auth; constructor(reflector: Reflector, auth: Auth); canActivate(context: ExecutionContext): Promise<boolean>; } declare const Session: ReturnType<typeof createParamDecorator>; declare const IsPublic: () => _nestjs_common.CustomDecorator<typeof IS_PUBLIC_KEY>; declare const CurrentUser: ReturnType<typeof createParamDecorator>; export { AUTH_MODULE_OPTIONS_TOKEN, AuthGuard, AuthModule, type AuthModuleOptions, BETTER_AUTH_INSTANCE_TOKEN, CurrentUser, IS_PUBLIC_KEY, IsPublic, type RoutingProvider, Session, type User, type UserSession };