Awesome
trailpack-core
Note: This pack is deprecated as of Trails v2.0.
The functionality in this pack were merged into the Trails core in v2. If this pack is included in your app config, or is relied upon by any trailpack in your application, it simply print a warning and exit. In Trails 3.0 (released in April 2017), this trailpack will be completely removed.
Core Trailpack. This pack is required by all Trails applications, and is reponsible for validating the API definition (the stuff in api/), merging environment-specific configuration, binding context on Controllers, Services, and Policies, and other important and fundamental things.
In particular, this trailpack includes and configures two very important things:
- Logging
- Internationalization (i18n)
Install
$ npm install --save trailpack-core
Usage
Configuration
The core trailpack should always be loaded in your trailpack config.
// config/main.js
module.exports = {
// ...
packs: [
require('trailpack-core')
]
}
Logging
This trailpack exposes the configured logger (in config.log
) on the main app
object. See archetype/config/log.js
for an example configuration.
// api/controllers/ExampleController.js
module.exports = class ExampleController extends Controller {
/**
* Logs the querystring
*/
exampleHandler (req, res) {
this.log.debug(req.query)
}
}
Internationalization
This trailpack also exposes the i18next translator function on the main app
object as app.__
and app.t
. See archetype/config/i18n.js
for an example configuration.
// config/locales/en.json
{
"helloworld": "Hello World"
}
// api/controllers/ExampleController.js
module.exports = class ExampleController extends Controller {
/**
* Returns the string "Hello World" if locale is set to "en"
*/
exampleHandler (req, res) {
this.app.t('helloworld')
}
}
Contributing
We love contributions! Please check out our Contributor's Guide for more information on how our projects are organized and how to get started.