Files
nest/lib/common/interfaces/nest-application.interface.d.ts

151 lines
4.8 KiB
TypeScript

import { INestMicroservice, ExceptionFilter, PipeTransform } from './index';
import { WebSocketAdapter } from './websockets/web-socket-adapter.interface';
import { CanActivate } from './features/can-activate.interface';
import { NestInterceptor } from './features/nest-interceptor.interface';
import { INestApplicationContext } from './nest-application-context.interface';
import { CorsOptions } from './external/cors-options.interface';
export interface INestApplication extends INestApplicationContext {
/**
* Initializes application. It is not mandatory to call this method directly.
*
* @returns Promise
*/
init(): Promise<this>;
/**
* A wrapper function around HTTP adapter method: `adapter.use()`.
* Example `app.use(cors())`
*
* @returns void
*/
use(...args: any[]): this;
/**
* A wrapper function around native `express.set()` method.
* Example `app.set('trust proxy', 'loopback')`
*
* @returns void
*/
set(...args: any[]): this;
/**
* A wrapper function around native `express.engine()` method.
* Example `app.engine('mustache', mustacheExpress())`
*
* @returns void
*/
engine(...args: any[]): this;
/**
* A wrapper function around native `express.enable()` method.
* Example `app.enable('x-powered-by')`
*
* @returns void
*/
enable(...args: any[]): this;
/**
* Enables CORS (Cross-Origin Resource Sharing)
*
* @returns void
*/
enableCors(options?: CorsOptions): this;
/**
* A wrapper function around native `express.disable()` method.
* Example `app.disable('x-powered-by')`
*
* @returns void
*/
disable(...args: any[]): this;
/**
* Starts the application.
*
* @param {number} port
* @param {string} hostname
* @param {Function} callback Optional callback
* @returns Promise
*/
listen(port: number | string, callback?: () => void): Promise<any>;
listen(port: number | string, hostname: string, callback?: () => void): Promise<any>;
/**
* Starts the application and can be awaited.
*
* @param {number} port
* @param {string} hostname (optional)
* @returns Promise
*/
listenAsync(port: number | string, hostname?: string): Promise<any>;
/**
* Setups the prefix for the every HTTP route path
*
* @param {string} prefix The prefix for the every HTTP route path (for example `/v1/api`)
* @returns void
*/
setGlobalPrefix(prefix: string): this;
/**
* Setup Ws Adapter which will be used inside Gateways.
* Use, when you want to override default `socket.io` library.
*
* @param {WebSocketAdapter} adapter
* @returns void
*/
useWebSocketAdapter(adapter: WebSocketAdapter): this;
/**
* Connects microservice to the NestApplication instance. It transforms application to the hybrid instance.
*
* @param {MicroserviceConfiguration} config Microservice configuration objet
* @returns INestMicroservice
*/
connectMicroservice(config: any): INestMicroservice;
/**
* Returns array of the connected microservices to the NestApplication.
*
* @returns INestMicroservice[]
*/
getMicroservices(): INestMicroservice[];
/**
* Returns underlying, native HTTP server.
*
* @returns http.Server
*/
getHttpServer(): any;
/**
* Starts all connected microservices asynchronously
*
* @param {Function} callback Optional callback function
* @returns void
*/
startAllMicroservices(callback?: () => void): this;
/**
* Starts all connected microservices and can be awaited
*
* @returns Promise
*/
startAllMicroservicesAsync(): Promise<void>;
/**
* Setups exception filters as a global filters (will be used within every HTTP route handler)
*
* @param {ExceptionFilter[]} ...filters
*/
useGlobalFilters(...filters: ExceptionFilter[]): this;
/**
* Setups pipes as a global pipes (will be used within every HTTP route handler)
*
* @param {PipeTransform[]} ...pipes
*/
useGlobalPipes(...pipes: PipeTransform<any>[]): this;
/**
* Setups interceptors as a global interceptors (will be used within every HTTP route handler)
*
* @param {NestInterceptor[]} ...interceptors
*/
useGlobalInterceptors(...interceptors: NestInterceptor[]): this;
/**
* Setups guards as a global guards (will be used within every HTTP route handler)
*
* @param {CanActivate[]} ...guards
*/
useGlobalGuards(...guards: CanActivate[]): this;
/**
* Terminates the application (both NestApplication, Gateways and each connected microservice)
*
* @returns void
*/
close(): void;
}