2.0.1 • Published 6 years ago
hurp-launch v2.0.1
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
uncaughtExceptionandunhandledRejectionevents and immediately crashes application in such case - listens for
SIGINTandSIGTERMprocess events to trigger a graceful shutdown of the application
Installation
$ npm install hurp-launchUsage
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()onlaunchfunction 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