App scaffold for Node.js
npm install @buzuli/appNode.js app wrapper
$ npm install @buzuli/app
``
const app = require('@buzuli/app')
const entry = async (context) => {
// app entry point
}
const options = {
unhandled: {
sigint: { exit: false }
}
}
app(entry, options)
// OR
app(options, entry)
// OR
app(options)(entry)
`
Options may be pass as a second argument to customize behavior.
- options.handle | forwarded to underlying @buzuli/unhandled packageoptions.logger
- | console-like logger object (logs via console built-in by default)options.modules
- | every property is asynchronously resolved and injected
The context object injects utilities and customizations/config into the entry point function.context.logger
- | the configured loggercontext.modules
- | resolved modules
Modules supplied via options.modules object are awaited and the resolved values injected under the same names in context.modules.
Exit cleanly on return or exception by the entry function.
Logs and exits on (tunable via options.unhandled`):
- unhandled rejection
- uncaught rejection
- SIGINT
- SIGTERM