1.1.3 • Published 2 years ago

hashable-cli v1.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Node.js CI Node.js Package pages-build-deployment

hashable-cli

Generate consistent hashable JSON payload, great for piping through hash functions.

  • sort arrays by predefined keys
  • sort object by keys (optional)
  • works as command line tool, module and in browser
  • supports in-place modification of JSON file
  • great for storing JSON in Git

Try it in the browser at https://chernjie.github.io/hashable/

Command Line Usage

Installation

npm i -g hashable-cli

Example

via stdin

cat file.json | npx hashable-cli > sorted.json

as argument

npx hashable-cli file.json > sorted.json

as argument and in-place overwriting file

npx hashable-cli --in-place file.json

using priority option for sorting arrays

npx hashable-cli --priority=id,label file.json

Module Usage

Installation

npm i --save hashable-cli

Example

import hashable from 'hashable-cli'
import md5 from "md5"

const sorted1 = hashable({ a: 'b', c: ['e', 'd']}, { sortObject: true })
const sorted2 = hashable({ c: ['d', 'e'], a: 'b'}, { sortObject: true })

const hash1 = md5(JSON.stringify(sorted1))
const hash2 = md5(JSON.stringify(sorted2))

return hash1 === hash2

Options

Command LineModuleDefaultDescription
--in-placeN/Afalseto overwrite the original JSON file
--sort-objectsortObjectfalseto sort object keys.
--priorityprioritysee priorityto specify array sorting priority (default priority is used if not specified). In CLI-mode, use comma-separated strings to specify multiple sort keys. e.g. --priority=id,label

License

see LICENSE

Alternatives you might prefer