UNPKG

@nestjs/core

Version:

Nest - modern, fast, powerful node.js web framework (@core)

69 lines (68 loc) 1.97 kB
import { ReplaySubject, Subject } from 'rxjs'; /** * Defines the `HttpAdapterHost` object. * * `HttpAdapterHost` wraps the underlying * platform-specific `HttpAdapter`. The `HttpAdapter` is a wrapper around the underlying * native HTTP server library (e.g., Express). The `HttpAdapterHost` object * provides methods to `get` and `set` the underlying HttpAdapter. * * @see [Http adapter](https://docs.nestjs.com/faq/http-adapter) * * @publicApi */ export class HttpAdapterHost { _httpAdapter; _listen$ = new Subject(); _init$ = new ReplaySubject(); isListening = false; /** * Accessor for the underlying `HttpAdapter` * * @param httpAdapter reference to the `HttpAdapter` to be set */ set httpAdapter(httpAdapter) { this._httpAdapter = httpAdapter; this._init$.next(); this._init$.complete(); } /** * Accessor for the underlying `HttpAdapter` * * @example * `const httpAdapter = adapterHost.httpAdapter;` */ get httpAdapter() { return this._httpAdapter; } /** * Observable that allows to subscribe to the `listen` event. * This event is emitted when the HTTP application is listening for incoming requests. */ get listen$() { return this._listen$.asObservable(); } /** * Observable that allows to subscribe to the `init` event. * This event is emitted when the HTTP application is initialized. */ get init$() { return this._init$.asObservable(); } /** * Sets the listening state of the application. */ set listening(listening) { this.isListening = listening; if (listening) { this._listen$.next(); this._listen$.complete(); } } /** * Returns a boolean indicating whether the application is listening for incoming requests. */ get listening() { return this.isListening; } }