UNPKG

node-config-examiner

Version:

If you use the super useful [node-config](http://onet.pl) module, it can be a helpful solution for you.

57 lines (49 loc) 1.41 kB
'use strict'; const diff = require('diff-json-structure'); const chalk = require('chalk'); const config = require('config'); const env = process.env.NODE_CONFIG_ENV || process.env.NODE_ENV || 'default'; module.exports = { logger: () => {}, $printDiff: function printDiff(parts) { const output = []; parts.forEach(function (part) { part.value .split('\n') .filter(function (line) { return !!line; }) .forEach(function (line) { if (part.added) { output.push(chalk.green('+ ' + line)); } else if (part.removed) { output.push(chalk.red('- ' + line)); } else { output.push(chalk.dim(' ' + line)); } }); }); this.logger(`\n\n${output.join('\n')}\n\n`); }, findEnv: function (env) { let resources = config.util.getConfigSources(); resources = resources.filter(function(element) { const fileName = element.name.replace(/^.*[\\\/]/, ''); return fileName === `${env}.json`; }); return resources[0].parsed; }, examinate: function (logger) { if (!logger) { this.logger = console.log; } else { this.logger = logger; } const confDefault = this.findEnv('default'); const confCurrent = this.findEnv(env); this.$printDiff( diff( confDefault, confCurrent ) ); } }