Giter VIP home page Giter VIP logo

hashable's Introduction

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 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

Alternatives you might prefer

  • safe-stable-stringify - Safe, deterministic and fast serialization alternative to JSON.stringify. Zero dependencies. ESM and CJS. 100% coverage.
  • json-stable-stringify - deterministic version of JSON.stringify() so you can get a consistent hash from stringified results
  • fast-json-stable-stringify - Deterministic JSON.stringify() - a faster version of @substack's json-stable-strigify without jsonify.
  • sort-keys - Useful to get a deterministically ordered object, as the order of keys can vary between engines.
  • json-hash - Generates hash for JSON objects.
  • fastest-stable-stringify - Deterministic JSON.stringify() - fastest stable JSON stringifier. This project combines fast-json-stable-stringify and fast-stable-stringify to create the fastest stable JSON stringifier
  • json-hashable - sorts object keys only, arrays remain the same. Returns a hash but no longer a strict equal of the input payload

hashable's People

Contributors

chernjie avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.