import { ModuleMetadata, DynamicModule, ForwardReference, Type, Provider, Abstract, } from "@nestjs/common" export abstract class NestModuleDecoratorParameter { private readonly parameter:ModuleMetadata = {} public constructor() { this.parameter = { imports:this.imports(), exports:this.exports(), controllers:this.controllers(), providers:this.providers() } } protected abstract imports():(Type | DynamicModule | Promise | ForwardReference)[] protected abstract controllers():Type[] protected abstract providers():Provider[] protected abstract exports():Array | string | symbol | Provider | ForwardReference | Abstract | Function> public make():ModuleMetadata { return this.parameter } }