@buiducnhat/nest-better-auth
Version:
NestJs Better Auth package, work with express and fastify
50 lines (40 loc) • 2.33 kB
TypeScript
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 };