@pryv/boiler
Version:
Logging and config boilerplate library for Node.js apps and services at Pryv
91 lines (83 loc) • 2.96 kB
JavaScript
/**
* @license
* [BSD-3-Clause](https://github.com/pryv/pryv-boiler/blob/master/LICENSE)
*/
const path = require('path');
const boiler = require('../src');
const { getConfigUnsafe, getLogger, getConfig } = require('../src').init({
appName: 'sample',
baseFilesDir: path.resolve(__dirname, '../'),
baseConfigDir: path.resolve(__dirname, './configs'),
extraConfigs: [{
scope: 'extra1',
file: path.resolve(__dirname, './configs/extra-config.yml')
}, {
scope: 'extra2',
file: path.resolve(__dirname, './configs/extra-config.json')
}, {
scope: 'extra3',
file: path.resolve(__dirname, './configs/extra-config.js')
}, {
scope: 'extra4',
data: {
'extra-4-data': 'extra 4 object loaded'
}
}, {
scope: 'extra5',
key: 'extra-5-data',
data: 'extra 5 object loaded'
},
{
scope: 'extra-js-async',
fileAsync: path.resolve(__dirname, './configs/extra-js-async.js')
}, {
scope: 'pryv.li',
url: 'https://reg.pryv.li/service/info'
}, {
scope: 'pryv.me',
key: 'service',
url: 'https://reg.pryv.me/service/info'
}, {
scope: 'pryv.me-def',
key: 'definitions',
urlFromKey: 'service:assets:definitions'
}, {
scope: 'ondisk-scope',
key: 'ondisk',
url: 'file://' + path.resolve(__dirname, './remotes/ondisk.json')
}, {
plugin: require('./plugins/plugin-sync')
}, {
pluginAsync: require('./plugins/plugin-async')
}]
}, function () {
console.log('Ready');
});
const config = getConfigUnsafe(true);
const rootLogger = getLogger();
rootLogger.debug('hello root');
const indexLogger = getLogger('index');
indexLogger.debug('hello index');
indexLogger.info('extra Yaml', config.get('extra-yaml'));
indexLogger.info('extra Json', config.get('extra-json'));
indexLogger.info('extra Js', config.get('extra-js'));
indexLogger.info('extra 4 data', config.get('extra-4-data'));
indexLogger.info('extra 5 data', config.get('extra-5-data'));
indexLogger.info('default yaml', config.get('default-yaml'));
indexLogger.info('Default Service Name', config.get('service:name'));
config.replaceScopeConfig('extra5', { 'extra-5-data': 'new Extra 5 data' });
indexLogger.info('extra 5 data', config.get('extra-5-data'));
const subLogger = indexLogger.getLogger('sub');
subLogger.debug('hello sub');
indexLogger.info('plugin sync', config.get('plugin-sync'));
indexLogger.info('hide stuff auth=c08r0xs95xlb1xgssmp6tr7c0000gp', { password: 'toto' });
(async () => {
await getConfig();
indexLogger.info('pryv.li serial: ', config.get('serial'));
indexLogger.info('pryv.me name: ', config.get('service:name'));
indexLogger.info('Favicon: ', config.get('definitions:favicon:default:url'));
indexLogger.info('OnDisk: ', config.get('ondisk'));
indexLogger.info('Plugin async: ', config.get('plugin-async'));
indexLogger.info('Service Name', config.get('service:name'));
indexLogger.info('Scope of foo', config.getScopeAndValue('foo'));
})();