Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
abstract-app
Advanced tools
An Abstract Application Class that handles kill signals (SIGINT and SIGTERM) and enforces stop timeout
npm i --save abstract-app
// esm
import AbstractApp from 'abstract-app`
// commonjs
const AbstractApp = require('abstract-app')
import { createServer } from 'http'
class MyApp extends AbstractApp {
constructor() {
super({
// required opts
logger: console,
stopTimeout: 15*1000
})
this.handle
this.server = createServer((req, res) => {
res.statusCode = 200;
res.end('Hello World');
})
}
protected async _start() {
return new Promise((resolve, reject) => {
this.server.once('error', reject)
this.server.listen(3000, () => {
this.server.removeListener('error', reject)
resolve()
})
})
}
protected async _stop() {
return new Promise((resolve, reject) => {
this.server.close((err) => {
if (err) return reject(err)
resolve()
})
})
}
}
const app = new MyApp()
await app.start()
console.log(`app pid: ${process.pid}`)
/* ... see example above ... */
const app = new MyApp()
await app.start()
console.log(`app pid: ${process.pid}`)
await app.stop()
stopTimeout
it will be force shutdownStart the app
> node app.js
starting app...
app started
app pid: 98850
Send the app SIGINT
> kill -SIGINT 98850
App logs after stop
stopping app...
app stopped
App logs if stop errors
stopping app...
error stopping app {
err: Error: boom
at filename:10:17
}
MIT
FAQs
Abstract Class to represent entities that can be started and stopped
The npm package abstract-app receives a total of 6 weekly downloads. As such, abstract-app popularity was classified as not popular.
We found that abstract-app demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.