Skip to content

Commit

Permalink
added json format
Browse files Browse the repository at this point in the history
  • Loading branch information
yonamin committed Mar 18, 2023
1 parent 2f0e588 commit 875b1e8
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 0 deletions.
1 change: 1 addition & 0 deletions __fixtures__/expected.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[{"name":"common","value":[{"name":"follow","stage":"added","value":false},{"name":"setting1","stage":"unchanged","value":"Value 1"},{"name":"setting2","stage":"removed","value":200},{"name":"setting3","stage":"updated","value":{"removed":true,"added":null}},{"name":"setting4","stage":"added","value":"blah blah"},{"name":"setting5","stage":"added","value":{"key5":"value5"}},{"name":"setting6","value":[{"name":"doge","value":[{"name":"wow","stage":"updated","value":{"removed":"","added":"so much"}}],"stage":"nested"},{"name":"key","stage":"unchanged","value":"value"},{"name":"ops","stage":"added","value":"vops"}],"stage":"nested"}],"stage":"nested"},{"name":"group1","value":[{"name":"baz","stage":"updated","value":{"removed":"bas","added":"bars"}},{"name":"foo","stage":"unchanged","value":"bar"},{"name":"nest","stage":"updated","value":{"removed":{"key":"value"},"added":"str"}}],"stage":"nested"},{"name":"group2","stage":"removed","value":{"abc":12345,"deep":{"id":45}}},{"name":"group3","stage":"added","value":{"deep":{"id":{"number":45}},"fee":100500}}]
2 changes: 2 additions & 0 deletions __tests__/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@ const json1 = getFixturePath('file1.json');
const json2 = getFixturePath('file2.json');
const expectedStylish = readFileSync(getFixturePath('expected.stylish.txt'), 'utf8');
const expectedPlain = readFileSync(getFixturePath('expected.plain.txt'), 'utf8');
const expectedJson = readFileSync(getFixturePath('expected.json'), 'utf8');
test.each([
[yaml1, yaml2, 'stylish', expectedStylish],
[json1, json2, 'stylish', expectedStylish],
[json1, yaml2, 'plain', expectedPlain],
[json1, json2, 'json', expectedJson],
])('should work', (file1, file2, format, expected) => {
expect(genDiff(file1, file2, format)).toEqual(expected);
});
4 changes: 4 additions & 0 deletions formatters/index.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import json from './json.js';
import plain from './plain.js';
import stylish from './stylish.js';

Expand All @@ -8,6 +9,9 @@ const chooseFormat = (data, format) => {
if (format === 'plain') {
return plain(data);
}
if (format === 'json') {
return json(data);
}
return 'Unknown format';
};
export default chooseFormat;
1 change: 1 addition & 0 deletions formatters/json.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export default (tree) => JSON.stringify(tree);
1 change: 1 addition & 0 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ const gendiff = (file1, file2) => {
};
return diff(file1, file2);
};

export default (filepath1, filepath2, format = 'stylish') => {
const extname1 = path.extname(filepath1);
const extname2 = path.extname(filepath2);
Expand Down

0 comments on commit 875b1e8

Please sign in to comment.