ivan-nor/frontend-project-lvl2

View on GitHub
src/index.js

Summary

Maintainability
A
0 mins
Test Coverage
import path from 'path';
import fs from 'fs';
import parse from './parsers';
import buildInternalTree from './builder';
import getFormatter from './formatters';

const getData = (relativePath) => {
  const absolutePath = path.resolve(__dirname, process.cwd(), relativePath);
  const data = fs.readFileSync(absolutePath, 'utf8');
  return data;
};

const genDiff = (pathToBefore, pathToAfter, format) => {
  const firstData = getData(pathToBefore);
  const secondData = getData(pathToAfter);

  const firstParsingInObj = parse(firstData, path.extname(pathToBefore));
  const secondParsingInObj = parse(secondData, path.extname(pathToAfter));

  const formatter = getFormatter(format);

  const result = formatter(buildInternalTree(firstParsingInObj, secondParsingInObj));

  return result;
};

export default genDiff;