54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
|
'use strict';
|
||
|
|
||
|
/*
|
||
|
* @api public
|
||
|
* @property {function} format
|
||
|
* Both the construction method and set of exposed
|
||
|
* formats.
|
||
|
*/
|
||
|
const format = exports.format = require('./format');
|
||
|
|
||
|
/*
|
||
|
* @api public
|
||
|
* @method {function} levels
|
||
|
* Registers the specified levels with logform.
|
||
|
*/
|
||
|
exports.levels = require('./levels');
|
||
|
|
||
|
/*
|
||
|
* @api private
|
||
|
* method {function} exposeFormat
|
||
|
* Exposes a sub-format on the main format object
|
||
|
* as a lazy-loaded getter.
|
||
|
*/
|
||
|
function exposeFormat(name, path) {
|
||
|
path = path || name;
|
||
|
Object.defineProperty(format, name, {
|
||
|
get() {
|
||
|
return require(`./${path}.js`);
|
||
|
},
|
||
|
configurable: true
|
||
|
});
|
||
|
}
|
||
|
|
||
|
//
|
||
|
// Setup all transports as lazy-loaded getters.
|
||
|
//
|
||
|
exposeFormat('align');
|
||
|
exposeFormat('errors');
|
||
|
exposeFormat('cli');
|
||
|
exposeFormat('combine');
|
||
|
exposeFormat('colorize');
|
||
|
exposeFormat('json');
|
||
|
exposeFormat('label');
|
||
|
exposeFormat('logstash');
|
||
|
exposeFormat('metadata');
|
||
|
exposeFormat('ms');
|
||
|
exposeFormat('padLevels', 'pad-levels');
|
||
|
exposeFormat('prettyPrint', 'pretty-print');
|
||
|
exposeFormat('printf');
|
||
|
exposeFormat('simple');
|
||
|
exposeFormat('splat');
|
||
|
exposeFormat('timestamp');
|
||
|
exposeFormat('uncolorize');
|