abstract-http-server
Advanced tools
Comparing version 1.0.0 to 2.0.0
{ | ||
"name": "abstract-http-server", | ||
"version": "1.0.0", | ||
"version": "2.0.0", | ||
"description": "Description", | ||
@@ -5,0 +5,0 @@ "main": "dist/cjs/index.js", |
@@ -18,2 +18,3 @@ import AbstractStartable, { | ||
export type OptsType = ServerOptions & { | ||
port?: number | ||
logger?: { | ||
@@ -25,3 +26,5 @@ info: (...args: Array<any>) => void | ||
export type StartOptsType = ListenOptions | ||
export type StartOptsType = ListenOptions & { | ||
port?: number | ||
} | ||
export type StopOptsType = StartableStopOptsType | ||
@@ -32,7 +35,9 @@ | ||
protected logger: NonNullable<OptsType['logger']> | ||
protected port: number | undefined | ||
protected server: Server | ||
constructor(opts: OptsType = {}) { | ||
super() | ||
this.sockets = new Set() | ||
this.logger = opts.logger || console | ||
this.logger = opts.logger ?? console | ||
this.server = http.createServer(opts) | ||
@@ -49,3 +54,3 @@ process.nextTick(() => { | ||
} | ||
handleRequest( | ||
protected handleRequest( | ||
req: IncomingMessage, | ||
@@ -57,9 +62,10 @@ res: ServerResponse, | ||
} | ||
async _start(opts: StartOptsType = {}) { | ||
await new Promise((resolve, reject) => { | ||
protected async _start(opts: StartOptsType = {}) { | ||
await new Promise<void>((resolve, reject) => { | ||
const { logger, server } = this | ||
logger.info('http server: starting...', opts) | ||
const { port, ...listenOpts } = opts | ||
server.listen({ | ||
port: 3000, | ||
...opts, | ||
port: port ?? this.port ?? process.env?.PORT ?? 3000, | ||
...listenOpts, | ||
}) | ||
@@ -85,4 +91,4 @@ server.once('listening', handleListening) | ||
} | ||
async _stop(opts: StopOptsType = {}) { | ||
await new Promise((resolve, reject) => { | ||
protected async _stop(opts: StopOptsType = {}) { | ||
await new Promise<void>((resolve, reject) => { | ||
const { logger, server, sockets } = this | ||
@@ -89,0 +95,0 @@ logger.info('http server: stopping...', opts) |
@@ -6,5 +6,8 @@ { | ||
// "incremental": true, /* Enable incremental compilation */ | ||
"target": "ES2015", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ | ||
"target": "ES2020", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ | ||
"module": "ES2020", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */ | ||
// "lib": [], /* Specify library files to be included in the compilation. */ | ||
"lib": [ | ||
"ES2020" | ||
], | ||
// "allowJs": true, /* Allow javascript files to be compiled. */ | ||
@@ -11,0 +14,0 @@ // "checkJs": true, /* Report errors in .js files. */ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
34800
544