unfunk-diff
v0.0.2
Published
Object & string diff rendering for all displays
Downloads
4,902
Readme
unfunk-diff
Object & String diff formatter for all displays
What?
The diff renderers on npm (either object diff or string diffs) are not usable on displays without colour support. Object diffs usually lack a string diff representation which makes it difficult to spot subtle changes in string values deep in the objects structure. Unfunk-diff aims to integrate both to allow debugging of object and string differences, optionally without colour support.
- String-diff algorithm is jsDiff.
- Object-diff algorithm is objectDiff with nested string-diff. May currently be even stricter then your assertions!
- Style output abstracted by ministyle.
Examples
See the travis-ci build log for various examples (tests displayed with mocha-unfunk-reporter).
Usage
Install from npm:
$ npm install unfunk-diff
(it could work browser except I never got around to fix that)
API
Minimal:
console.log(formatter.ansi(valueA, valueB));
console.log(formatter.plain(valueA, valueB));
Full version:
// get the constructor
var DiffFormatter = require('unfunk-diff').DiffFormatter;
// get a ministyle
var style = require('ministyle').css();
// pass the ministyle and line wrapping width
var formatter = new DiffFormatter(style, 80);
// get the wrapped diff
var str = formatter.getStyledDiff(valueA, valueB);
console.log(str);
Build
Unfunk-diff is written in TypeScript and built with grunt using grunt-ts.
Install development dependencies in your git checkout:
$ npm install
You need the global grunt command:
$ npm install grunt-cli -g
Build and run tests:
$ grunt
See the Gruntfile
for additional commands, including many mocha runners.
Versions
- 0.0.1 - Extracted from mocha-unfunk-reporter
Credit
- String diff from jsDiff by Kevin Decker
- Object diff from objectDiff by Nikita Vasilyev
License
Copyright (c) 2013 Bart van der Schoor
Licensed under the MIT license.