Skip to content

Bartvds/unfunk-diff

Repository files navigation

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 (plain-text, css, html, ansi, grunt etc).

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:

var unfunk = require('unfunk-diff');

console.log(unfunk.ansi(actual, expected));
console.log(unfunk.plain(actual, expected));

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(actual, expected);
console.log(str);

See the ministyle for more output options, like the css output classes

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.

About

Object & String diff formatter for all displays

Resources

License

Stars

Watchers

Forks

Packages

No packages published