Setup eslint and enforce rules
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -1,21 +1,21 @@
|
||||
import {Inject, Singleton} from "../di"
|
||||
import {HTTPStatus, withTimeout} from "../util"
|
||||
import {Unit} from "../lifecycle/Unit";
|
||||
import {createServer, IncomingMessage, Server, ServerResponse} from "http";
|
||||
import {Logging} from "./Logging";
|
||||
import {Request} from "../http/lifecycle/Request";
|
||||
import {HTTPKernel} from "../http/kernel/HTTPKernel";
|
||||
import {PoweredByHeaderInjectionHTTPModule} from "../http/kernel/module/PoweredByHeaderInjectionHTTPModule";
|
||||
import {SetSessionCookieHTTPModule} from "../http/kernel/module/SetSessionCookieHTTPModule";
|
||||
import {InjectSessionHTTPModule} from "../http/kernel/module/InjectSessionHTTPModule";
|
||||
import {PersistSessionHTTPModule} from "../http/kernel/module/PersistSessionHTTPModule";
|
||||
import {MountActivatedRouteHTTPModule} from "../http/kernel/module/MountActivatedRouteHTTPModule";
|
||||
import {ExecuteResolvedRouteHandlerHTTPModule} from "../http/kernel/module/ExecuteResolvedRouteHandlerHTTPModule";
|
||||
import {error} from "../http/response/ErrorResponseFactory";
|
||||
import {ExecuteResolvedRoutePreflightHTTPModule} from "../http/kernel/module/ExecuteResolvedRoutePreflightHTTPModule";
|
||||
import {ExecuteResolvedRoutePostflightHTTPModule} from "../http/kernel/module/ExecuteResolvedRoutePostflightHTTPModule";
|
||||
import {ParseIncomingBodyHTTPModule} from "../http/kernel/module/ParseIncomingBodyHTTPModule";
|
||||
import {Config} from "./Config";
|
||||
import {Inject, Singleton} from '../di'
|
||||
import {HTTPStatus, withTimeout} from '../util'
|
||||
import {Unit} from '../lifecycle/Unit'
|
||||
import {createServer, IncomingMessage, RequestListener, Server, ServerResponse} from 'http'
|
||||
import {Logging} from './Logging'
|
||||
import {Request} from '../http/lifecycle/Request'
|
||||
import {HTTPKernel} from '../http/kernel/HTTPKernel'
|
||||
import {PoweredByHeaderInjectionHTTPModule} from '../http/kernel/module/PoweredByHeaderInjectionHTTPModule'
|
||||
import {SetSessionCookieHTTPModule} from '../http/kernel/module/SetSessionCookieHTTPModule'
|
||||
import {InjectSessionHTTPModule} from '../http/kernel/module/InjectSessionHTTPModule'
|
||||
import {PersistSessionHTTPModule} from '../http/kernel/module/PersistSessionHTTPModule'
|
||||
import {MountActivatedRouteHTTPModule} from '../http/kernel/module/MountActivatedRouteHTTPModule'
|
||||
import {ExecuteResolvedRouteHandlerHTTPModule} from '../http/kernel/module/ExecuteResolvedRouteHandlerHTTPModule'
|
||||
import {error} from '../http/response/ErrorResponseFactory'
|
||||
import {ExecuteResolvedRoutePreflightHTTPModule} from '../http/kernel/module/ExecuteResolvedRoutePreflightHTTPModule'
|
||||
import {ExecuteResolvedRoutePostflightHTTPModule} from '../http/kernel/module/ExecuteResolvedRoutePostflightHTTPModule'
|
||||
import {ParseIncomingBodyHTTPModule} from '../http/kernel/module/ParseIncomingBodyHTTPModule'
|
||||
import {Config} from './Config'
|
||||
|
||||
/**
|
||||
* Application unit that starts the HTTP/S server, creates Request and Response objects
|
||||
@@ -35,7 +35,7 @@ export class HTTPServer extends Unit {
|
||||
/** The underlying native Node.js server. */
|
||||
protected server?: Server
|
||||
|
||||
public async up() {
|
||||
public async up(): Promise<void> {
|
||||
const port = this.config.get('server.port', 8000)
|
||||
|
||||
// TODO register these by config
|
||||
@@ -49,7 +49,7 @@ export class HTTPServer extends Unit {
|
||||
ExecuteResolvedRoutePostflightHTTPModule.register(this.kernel)
|
||||
ParseIncomingBodyHTTPModule.register(this.kernel)
|
||||
|
||||
await new Promise<void>((res, rej) => {
|
||||
await new Promise<void>(res => {
|
||||
this.server = createServer(this.handler)
|
||||
|
||||
this.server.listen(port, () => {
|
||||
@@ -60,7 +60,7 @@ export class HTTPServer extends Unit {
|
||||
})
|
||||
}
|
||||
|
||||
public async down() {
|
||||
public async down(): Promise<void> {
|
||||
if ( this.server ) {
|
||||
this.server.close(err => {
|
||||
if ( err ) {
|
||||
@@ -71,17 +71,17 @@ export class HTTPServer extends Unit {
|
||||
}
|
||||
}
|
||||
|
||||
public get handler() {
|
||||
public get handler(): RequestListener {
|
||||
const timeout = this.config.get('server.timeout', 10000)
|
||||
|
||||
return async (request: IncomingMessage, response: ServerResponse) => {
|
||||
const extolloReq = new Request(request, response)
|
||||
|
||||
withTimeout(timeout, extolloReq.response.sent$.toPromise())
|
||||
.onTime(req => {
|
||||
.onTime(() => {
|
||||
this.logging.verbose(`Request lifecycle finished on time. (Path: ${extolloReq.path})`)
|
||||
})
|
||||
.late(req => {
|
||||
.late(() => {
|
||||
if ( !extolloReq.bypassTimeout ) {
|
||||
this.logging.warn(`Request lifecycle finished late, so an error response was returned! (Path: ${extolloReq.path})`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user