# Class PlatformAdapter

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

# Overview

abstract class PlatformAdapter<App = TsED.Application> {
    protected injector: InjectorService;
    static readonly NAME: string;
providers<span class="token punctuation">:</span> <a href="/api/di/types/common/interfaces/ProviderOpts.html"><span class="token">ProviderOpts</span></a><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">constructor</span><span class="token punctuation">(</span>injector<span class="token punctuation">:</span> <a href="/api/di/types/common/services/InjectorService.html"><span class="token">InjectorService</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>
get <span class="token function">app</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/platform/common/types/services/PlatformApplication.html"><span class="token">PlatformApplication</span></a>&lt;App&gt;<span class="token punctuation">;</span>

<span class="token function">onInit</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">beforeLoadRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>
<span class="token function">afterLoadRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise&lt;<span class="token keyword">any</span>&gt;<span class="token punctuation">;</span>

<span class="token keyword">abstract</span> <span class="token function">useContext</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">abstract</span> <span class="token function">mapLayers</span><span class="token punctuation">(</span>layer<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> <span class="token keyword">void</span><span class="token punctuation">;</span>

<span class="token keyword">abstract</span> <span class="token function">mapHandler</span><span class="token punctuation">(</span>handler<span class="token punctuation">:</span> Function<span class="token punctuation">,</span> layer<span class="token punctuation">:</span> <a href="/api/platform/platform-router/types/domain/PlatformHandlerMetadata.html"><span class="token">PlatformHandlerMetadata</span></a><span class="token punctuation">)</span><span class="token punctuation">:</span> Function<span class="token punctuation">;</span>
<span class="token function">getServers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> CreateServerReturn<span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>

<span class="token keyword">abstract</span> <span class="token function">createApp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
    app<span class="token punctuation">:</span> App<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 punctuation">}</span><span class="token punctuation">;</span>

<span class="token keyword">abstract</span> <span class="token function">statics</span><span class="token punctuation">(</span>endpoint<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> options<span class="token punctuation">:</span> <a href="/api/platform/common/types/config/interfaces/PlatformStaticsOptions.html"><span class="token">PlatformStaticsOptions</span></a><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">abstract</span> <span class="token function">multipart</span><span class="token punctuation">(</span>options<span class="token punctuation">:</span> <a href="/api/platform/common/types/config/interfaces/PlatformMulterSettings.html"><span class="token">PlatformMulterSettings</span></a><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/platform/common/types/config/interfaces/PlatformMulter.html"><span class="token">PlatformMulter</span></a><span class="token punctuation">;</span>

<span class="token keyword">abstract</span> <span class="token function">bodyParser</span><span class="token punctuation">(</span>type<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> opts?<span class="token punctuation">:</span> Record&lt;<span class="token keyword">string</span><span class="token punctuation">,</span> <span class="token keyword">any</span>&gt;<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">any</span><span class="token punctuation">;</span>

}

# Members

protected injector: InjectorService;

static readonly NAME: string;

providers: ProviderOpts[];

Load providers in top priority


get app(): PlatformApplication<App>;

onInit(): any;

Called after the injector instantiation


beforeLoadRoutes(): Promise<any>;

afterLoadRoutes(): Promise<any>;

abstract useContext(): any;

create initial context


abstract mapLayers(layer: PlatformLayer[]): void;

Map router layer to the targeted framework


abstract mapHandler(handler: Function, layer: PlatformHandlerMetadata): Function;

Map handler to the targeted framework


getServers(): CreateServerReturn[];

abstract createApp(): {
     app: App;
     callback(): (req: IncomingMessage, res: ServerResponse) => void;
 };

Return the app instance


abstract statics(endpoint: string, options: PlatformStaticsOptions): any;

Return the statics middlewares


abstract multipart(options: PlatformMulterSettings): PlatformMulter;

Return the multipart middleware


abstract bodyParser(type: string, opts?: Record<string, any>): any;

Return the body parser for the given