@nestdevx/database
Version:
Database module designed to work with mongodb for multi-tenant NestJS applications.
61 lines (60 loc) • 1.24 kB
TypeScript
import { Request } from 'express';
export type TokenSet = {
accessToken: string;
refreshToken: string;
accessTokenExpiryAt: Date;
refreshTokenExpiryAt: Date;
type: 'bearer';
};
export type TokenPayload = {
sub: string;
email: string;
tenantId?: string;
roles: IRole[];
};
export interface ICurrentUser {
sub: string;
email: string;
roles: Array<{
id: string;
name: string;
permissions: Array<string>;
}>;
tenantId?: string;
}
export interface ICurrentTenant {
id?: string;
hostName?: string;
dbUri?: string;
isActive: boolean;
name: string;
}
export interface IRequest extends Request {
tenant?: ICurrentTenant;
user?: ICurrentUser;
}
export interface IMultiTenant {
tenantId?: string;
}
export interface IVerifyRefreshToken {
valid: boolean;
payload?: {
sub: string;
};
}
export interface IWelcomeEmailPayload {
email: string;
fullName: string;
tenantId?: string;
sub: string;
verificationLink: string;
}
export interface IRole {
id: string;
name: string;
description?: string;
createdAt?: string;
updatedAt?: string;
tenantId?: string;
permissions: string[];
}