🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

diffy

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

diffy

A tiny framework for building diff based interactive command line tools.

Source
npmnpm
Version
1.2.0
Version published
Weekly downloads
14K
-9.09%
Maintainers
1
Weekly downloads
 
Created
Source

diffy

A tiny framework for building diff based interactive command line tools.

npm install diffy

Build Status

Basically React, but in the terminal powered by ansi-diff and neat-input.

Usage

var diffy = require('diffy')()
var trim = require('diffy/trim')

diffy.render(function () {
  return trim(`
    Hello user. The time is:
      ${new Date()}
    That is all for now
  `)
})

// re-render every 1s
setInterval(() => diffy.render(), 1000)

You can also use diffy to query input from a user

var input = require('diffy/input')({style: style})
var names = []

input.on('update', () => diffy.render())
input.on('enter', (line) => names.push(line))

diffy.render(function () {
  return trim(`
    Enter your name: ${input.line()}
    List of names: ${names.join(' ')}
  `)
})

function style (start, cursor, end) {
  return start + '[' + (cursor || ' ') + ']' + end
}

See the examples folder for more.

API

var diffy = require('diffy')([options])

Make a new diffy instance. Writes to stdout.

Options include:

{
  fullscreen: true // overtake the terminal like vim/less does
}

Note that if you use fullscreen: true, the terminal will be restored on exit, even if your program crashes.

diffy.render([function])

Trigger a render and/or update the default render function. A render function should simply return a string containing the output you wish to display and then diffy will make sure to only print the diff.

diffy.width

Property containing the width of the terminal.

diffy.height

Property containing the height of the terminal.

diffy.on('resize')

Emitted when the terminal is resized. Triggers a render as well.

diffy.on('render')

Emitted just before a render happens.

var input = require('diffy/input')()

Get a neat-input instance. Use this if you want to accept interactive input.

var trim = require('diffy/trim')

Helper function that trims the indentation of a multiline string. Useful if you have a render function that returns an indented string like in the above example.

Credits

Thank you to @Fouad for donating the module name.

License

MIT

FAQs

Package last updated on 28 Dec 2017

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