trailpack
Trailpack Interface. Trailpacks extend the functionality of the Trails
framework. (Application functionality should be extended using
Microservices).
Usage
This module is a class which should be extended by all trailpacks.
const Trailpack = require('trailpack')
class HipsterMagic extends Trailpack {
constructor (app) {
super(app, {
config: require('./config'),
api: require('./api'),
pkg: require('./package')
})
}
}
Lifecycle
app.start
- Validate
- Configure
- Initialize
app.ready
API
constructor(app, module, config, api)
Instantiate the Trailpack. config
and api
are optional arguments.
validate()
Validate the preconditions for proper functioning of this trailpack. For
example, if this trailpack requires that a database is configured in
config/database.js
, this method should validate this. This method should incur
no side-effects. Do not alter any extant configuration.
configure()
Extend the configuration (config/
, or app.config
) of the application, or
add new configuration objects. This method is run before the application
has loaded.
initialize()
If you need to bind any event listeners, start servers, connect to databases,
all of that should be done in initialize. Here, all of the configuration is
loaded and finalized.
Contributing
We love contributions! In order to be able to review your code efficiently,
please keep the following in mind:
- Pull Requests (PRs) must include new and/or updated tests, and all tests must pass.
- Use
eslint
! See the eslintConfig
in package.json. - Please reference the relevant issue in your Pull Request.
License
MIT