hurp-launch
v2.0.1
Published
Launcher for hurp-based applications
Downloads
35
Readme
hurp-launch
An opinionated launcher for hurp-based applications.
Features:
- calls
init()
anddestroy()
on your App instance - catches errors during boot and shutdown and immediately crashes the application
- listens for
uncaughtException
andunhandledRejection
events and immediately crashes application in such case - listens for
SIGINT
andSIGTERM
process events to trigger a graceful shutdown of the application
Installation
$ npm install hurp-launch
Usage
import pino from 'pino';
import { launch } from 'hurp-launch';
import { App } from './app';
const log = pino();
async function main() {
return new App({ log });
}
launch(main, { log });
There is no need to
.catch()
onlaunch
function as it will internally callprocess.exit(1)
on any errors
Logger
Logger instance must be compatible with that interface:
interface Log {
info(message: string): void;
fatal(obj: { err: Error }, message: string): void;
}
This approach is inspired by Bunyan. You can use a compatible logger like pino directly or write a simple wrapper around any other you like.
API
async launch(main: Main, options: Options): Promise<void>
import { launch } from 'hurp-launch';
Executes main
function and launches the application instance it returned.
main
- async function that return an App instanceoptions
- object containing optionsoptions.log
- logger instance compatible with interface described above