unfunk-diff

Object & string diff rendering for all displays

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
unfunk-diff
240.0.29 years ago9 years agoMinified + gzip package size for unfunk-diff in KB

Readme

unfunk-diff
Build Status Dependency Status NPM version
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:
````js console.log(formatter.ansi(valueA, valueB)); console.log(formatter.plain(valueA, valueB)); ````
Full version:
````js // 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

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.