hurp-launch
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

hurp-launch

npm

An opinionated launcher for hurp-based applications.

Features:

  • calls init() and destroy() on your App instance
  • catches errors during boot and shutdown and immediately crashes the application
  • listens for uncaughtException and unhandledRejection events and immediately crashes application in such case
  • listens for SIGINT and SIGTERM 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() on launch function as it will internally call process.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 instance
options - object containing options
options.log - logger instance compatible with interface described above

Readme

Keywords

Package Sidebar

Install

npm i hurp-launch

Weekly Downloads

1

Version

2.0.1

License

MIT

Unpacked Size

7.29 kB

Total Files

7

Last publish

Collaborators

  • yaroslav.korotaev