Socket
Socket
Sign inDemoInstall

unidiff

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

unidiff

diff with unified diff format handling


Version published
Maintainers
1
Created
Source

unidiff

unidiff adds support for creating unified diff format to jsdiff

The following snippet:

var unidiff = require('unidiff')

var diff = unidiff.diffLines(
    'a quick\nbrown\nfox\njumped\nover\nthe\nlazy\ndog\n',
    'a quick\nbrown\ncat\njumped\nat\nthe\nnot-so-lazy\nfox\n'
)
console.log(unidiff.formatLines(diff), {context: 2})

Produces this unified diff output:

--- a
+++ b
@@ -1,8 +1,8 @@
 a quick
 brown
-fox
+cat
 jumped
-over
+at
 the
-lazy
-dog
+not-so-lazy
+fox

This same output can be achieved more concisely using the diffAsText function:

console.log(require('unidiff').diffAsText(
    'a quick\nbrown\nfox\njumped\nover\nthe\nlazy\ndog\n',
    'a quick\nbrown\ncat\njumped\nat\nthe\nnot-so-lazy\nfox\n'
))

Both formatLines() and diffAsText() take a format options parameter with the following options.

{
    aname:        file name for input a, defaults to 'a'
    bname:        file name for input b, defaults to 'b'
    pre_context:  write up to this many unmodified lines before each change
    post_context: write up to this many unmodified lines after each change
    context:      default values for pre_context and post_context (specify both in one setting)
                  (context defaults to 3 when nothing is specified)
    format:       format of output text.  currently only "unified" is supported
}

Differences From JSDiff

All js-diff functions are also availalbe in unidiff, with a couple minor changes:

  • unidiff.diffLines() and unidiff.diffAsText() accept arrays of strings as well as strings with new lines for input.
  • unidiff.diffLines() returns an empty array when there are no differences instead of an array with a single unmodified change.

Useful features to add to unidiff

  • implement parsing of unified format to convert text output into patches.

Keywords

FAQs

Package last updated on 02 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc