snsin/project-lvl2-s381

View on GitHub
src/bin/gendiff.js

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/env node
import gendiff from 'commander';
import { version } from '../../package.json';
import diff, { defaultRenderer, renderSelector } from '..';

const list = Object.keys(renderSelector).join('|');


gendiff
  .version(version)
  .description('Compares two configuration files and shows a difference.')
  .arguments('<firstConfig> <secondConfig>')
  .option('-f, --format [type]', `Output format [${list}]`, [defaultRenderer])
  .action((firstConfig, secondConfig) => {
    try {
      if (!list.includes(gendiff.format)) {
        console.warn(`${gendiff.format} is not supported. Used default (${defaultRenderer})`);
      }
      const result = diff(firstConfig, secondConfig, gendiff.format);
      console.log(result);
    } catch (err) {
      const { errno, message } = err;
      console.error(message);
      process.exit(errno);
    }
  })
  .parse(process.argv);