Skip to content
/ gendiff Public

Учебный проект "Вычислитель отличий" в рамках обучения на hexlet.io

Notifications You must be signed in to change notification settings

skhrv/gendiff

Repository files navigation

gendiff

Maintainability Build Status

Setup

clone git and make installation

$ make install

or install binaries from npm

$ npm install -g gendiff-skhrv1

Usage

  • program supports four input file types: .yml .yaml .ini .json
  • $ gendiff before.json after.json get diff with default output
  • $ gendiff before.yml after.yml --format json get full diff tree with JSON output
  • -f | --format [type] formating output to tree, json or plain, default is tree
  • -h | --help help page
  • -V | --version program version

Example

before.json

{
  "group1": {
    "baz": "bas",
    "foo": "bar",
    "nest": {
      "key": "value"
    }
  },
  "group2": {
    "abc": "12345"
  }
}

after.json

{
  "group1": {
    "foo": "bar",
    "baz": "bars",
    "nest": "str"
  },

  "group3": {
    "fee": "100500"
  }
}

Tree output

$ gendiff before.json after.json

{
    group1: {
      - baz: bas
      + baz: bars
        foo: bar
      - nest: {
            key: value
        }
      + nest: str
    }
  - group2: {
        abc: 12345
    }
  + group3: {
        fee: 100500
    }
}

Plain output

$ gendiff before.json after.json -f plain

Property 'group1.baz' was updated. From 'bas' to 'bars'
Property 'group1.nest' was updated. From complex value to 'str'
Property 'group2' was removed
Property 'group3' was added with complex value

JSON output

$ gendiff before.json after.json -f json

[
  {
    "key": "group1",
    "type": "nest",
    "children": [
      {
        "key": "baz",
        "type": "changed",
        "oldValue": "bas",
        "newValue": "bars"
      },
      {
        "key": "foo",
        "type": "unchanged",
        "value": "bar"
      },
      {
        "key": "nest",
        "type": "changed",
        "oldValue": {
          "key": "value"
        },
        "newValue": "str"
      }
    ]
  },
  {
    "key": "group2",
    "type": "deleted",
    "value": {
      "abc": "12345"
    }
  },
  {
    "key": "group3",
    "type": "added",
    "value": {
      "fee": "100500"
    }
  }
]

About

Учебный проект "Вычислитель отличий" в рамках обучения на hexlet.io

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published