hashable-cli
v1.1.3
Published
Generate consistent hashable JSON payload, great for piping through hash functions. Works in CLI and is importable
Downloads
7
Maintainers
Readme
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 Line | Module | Default | Description
-- | -- | -- | --
--in-place
| N/A | false
| to overwrite the original JSON file
--sort-object
| sortObject
| false
| to sort object keys.
--priority
| priority
| see priority | to 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