@rytass/member-base-nestjs-module
Version:
Rytass Member System NestJS Base Module
24 lines (23 loc) • 1.37 kB
TypeScript
import type { InjectionToken, ModuleMetadata, OptionalFactoryDependency, Type } from '@nestjs/common';
import type { MemberBaseModuleOptionsDTO } from './member-base-module-options.dto';
import type { MemberBaseModuleOptionFactoryInterface } from './member-base-module-option-factory';
import type { BaseMemberEntity } from '../models/base-member.entity';
export interface MemberBaseModuleAsyncOptionsDTO<MemberEntity extends BaseMemberEntity = BaseMemberEntity, TokenPayload extends {
id: string;
account?: string;
domain?: string;
} = Pick<MemberEntity, 'id' | 'account'> & {
domain?: string;
}> extends Pick<ModuleMetadata, 'imports'> {
useFactory?: (...args: any[]) => Promise<MemberBaseModuleOptionsDTO<MemberEntity, TokenPayload>> | MemberBaseModuleOptionsDTO<MemberEntity, TokenPayload>;
inject?: (InjectionToken | OptionalFactoryDependency)[];
useClass?: Type<MemberBaseModuleOptionFactoryInterface<MemberEntity, TokenPayload>>;
useExisting?: Type<MemberBaseModuleOptionFactoryInterface<MemberEntity, TokenPayload>>;
}
export type MemberBaseModuleAsyncOptions<MemberEntity extends BaseMemberEntity = BaseMemberEntity, TokenPayload extends {
id: string;
account?: string;
domain?: string;
} = Pick<MemberEntity, 'id' | 'account'> & {
domain?: string;
}> = MemberBaseModuleAsyncOptionsDTO<MemberEntity, TokenPayload>;