# Class PlatformBuilder

Class platform
Module
import { PlatformBuilder } from "@tsed/common"
Source/packages/platform/common/src/types/builder/PlatformBuilder.ts

# Overview

class PlatformBuilder<App = TsED.Application> {
    #private;
    static adapter: Type<PlatformAdapter<any>>;
    readonly name: string;
    protected startedAt: Date;
    protected current: Date;
    protected constructor(adapter: Type<PlatformAdapter<App>> | undefined, module: Type, settings: Partial<TsED.Configuration>);
    get injector(): InjectorService;
    get rootModule(): any;
    get app(): PlatformApplication<App>;
    get platform(): Platform;
    get adapter(): PlatformAdapter<App>;
get <span class="token function">settings</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">import</span><span class="token punctuation">(</span>"@tsed/di"<span class="token punctuation">)</span>.<a href="/api/di/types/common/services/DIConfiguration.html"><span class="token">DIConfiguration</span></a><span class="token punctuation">;</span>
get <span class="token function">logger</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">import</span><span class="token punctuation">(</span>"@tsed/di"<span class="token punctuation">)</span>.<a href="/api/di/types/common/interfaces/DILogger.html"><span class="token">DILogger</span></a><span class="token punctuation">;</span>
get <span class="token function">disableBootstrapLog</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>
<span class="token keyword">static</span> create&lt;App<span class="token punctuation"> = </span>TsED.Application&gt;<span class="token punctuation">(</span>module<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">,</span> settings<span class="token punctuation">:</span> <a href="/api/platform/common/types/services/PlatformBuilderSettings.html"><span class="token">PlatformBuilderSettings</span></a>&lt;App&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> PlatformBuilder&lt;App&gt;<span class="token punctuation">;</span>
<span class="token keyword">static</span> build&lt;App<span class="token punctuation"> = </span>TsED.Application&gt;<span class="token punctuation">(</span>module<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">,</span> <span class="token punctuation">{</span> adapter<span class="token punctuation">,</span> ...settings <span class="token punctuation">}</span><span class="token punctuation">:</span> <a href="/api/platform/common/types/services/PlatformBuilderSettings.html"><span class="token">PlatformBuilderSettings</span></a>&lt;App&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> PlatformBuilder&lt;App&gt;<span class="token punctuation">;</span>

<span class="token keyword">static</span> bootstrap&lt;App<span class="token punctuation"> = </span>TsED.Application&gt;<span class="token punctuation">(</span>module<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">,</span> settings<span class="token punctuation">:</span> <a href="/api/platform/common/types/services/PlatformBuilderSettings.html"><span class="token">PlatformBuilderSettings</span></a>&lt;App&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;PlatformBuilder&lt;App&gt;&gt;<span class="token punctuation">;</span>
<span class="token function">callback</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token punctuation">(</span>req<span class="token punctuation">:</span> IncomingMessage<span class="token punctuation">,</span> res<span class="token punctuation">:</span> ServerResponse<span class="token punctuation">)</span> =&gt; <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token function">callback</span><span class="token punctuation">(</span>req<span class="token punctuation">:</span> IncomingMessage<span class="token punctuation">,</span> res<span class="token punctuation">:</span> ServerResponse<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token function">log</span><span class="token punctuation">(</span>...data<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>

<span class="token function">addComponents</span><span class="token punctuation">(</span>classes<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a> | <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> this<span class="token punctuation">;</span>

<span class="token function">addControllers</span><span class="token punctuation">(</span>endpoint<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> controllers<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a> | <a href="/api/di/types/common/interfaces/TokenProvider.html"><span class="token">TokenProvider</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token function">runLifecycle</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;this&gt;<span class="token punctuation">;</span>
<span class="token function">loadInjector</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">listen</span><span class="token punctuation">(</span>network?<span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">stop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">ready</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">callHook</span><span class="token punctuation">(</span>hook<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> ...args<span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token function">loadStatics</span><span class="token punctuation">(</span>hook<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token function">useProvider</span><span class="token punctuation">(</span>token<span class="token punctuation">:</span> <a href="/api/core/types/domain/Type.html"><span class="token">Type</span></a>&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">,</span> settings?<span class="token punctuation">:</span> <a href="/api/specs/schema/types/decorators/operations/Partial.html"><span class="token">Partial</span></a>&lt;<a href="/api/di/types/common/interfaces/ProviderOpts.html"><span class="token">ProviderOpts</span></a>&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> this<span class="token punctuation">;</span>
<span class="token function">bootstrap</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;this&gt;<span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">loadRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">mapRouters</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">diff</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">;</span>

<span class="token keyword">protected</span> <span class="token function">loadMiddlewaresFor</span><span class="token punctuation">(</span>hook<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">createHttpServers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">void</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">listenServers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">logRoutes</span><span class="token punctuation">(</span>layers<span class="token punctuation">:</span> <a href="/api/platform/platform-router/types/domain/PlatformLayer.html"><span class="token">PlatformLayer</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">mapTokenMiddlewares</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">void</span>&gt;<span class="token punctuation">;</span>

}

# Members

#private;

static adapter: Type<PlatformAdapter<any>>;

readonly name: string;

protected startedAt: Date;

protected current: Date;

get injector(): InjectorService;

get rootModule(): any;

get app(): PlatformApplication<App>;

get platform(): Platform;

get adapter(): PlatformAdapter<App>;

get settings(): import("@tsed/di").DIConfiguration;

Return the settings configured by the decorator Configuration.

@Configuration({
   port: 8000,
   httpsPort: 8080,
   mount: {
     "/rest": "${rootDir}/controllers/**/*.js"
   }
})
export class Server {
    $onInit(){
        console.log(this.settings); // {rootDir, port, httpsPort,...}
    }
}
1
2
3
4
5
6
7
8
9
10
11
12

get logger(): import("@tsed/di").DILogger;

get disableBootstrapLog(): any;

static create<App = TsED.Application>(module: Type<any>, settings: PlatformBuilderSettings<App>): PlatformBuilder<App>;

static build<App = TsED.Application>(module: Type<any>, { adapter, ...settings }: PlatformBuilderSettings<App>): PlatformBuilder<App>;

static bootstrap<App = TsED.Application>(module: Type<any>, settings: PlatformBuilderSettings<App>): Promise<PlatformBuilder<App>>;

Bootstrap a server application


callback(): (req: IncomingMessage, res: ServerResponse) => void;

callback(req: IncomingMessage, res: ServerResponse): void;

log(...data: any[]): any;

addComponents(classes: Type | Type[]): this;

Add classes to the components list


addControllers(endpoint: string, controllers: TokenProvider | TokenProvider[]): void;

Add classes decorated by Controller to components container.

# Example

@Controller('/ctrl')
class MyController{
}

platform.addControllers('/rest', [MyController])
1
2
3
4
5

TIP

If the MyController class isn't decorated, the class will be ignored.

:::


runLifecycle(): Promise<this>;

loadInjector(): Promise<void>;

listen(network?: boolean): Promise<void>;

stop(): Promise<void>;

ready(): Promise<void>;

callHook(hook: string, ...args: any[]): Promise<void>;

loadStatics(hook: string): void;

useProvider(token: Type<any>, settings?: Partial<ProviderOpts>): this;

bootstrap(): Promise<this>;

protected loadRoutes(): Promise<void>;

protected mapRouters(): Promise<void>;

protected diff(): string;

protected loadMiddlewaresFor(hook: string): void;

Load middlewares from configuration for the given hook


protected createHttpServers(): void;

protected listenServers(): Promise<void>;

protected logRoutes(layers: PlatformLayer[]): Promise<void>;

protected mapTokenMiddlewares(): Promise<void>;