canonicaljson-js
JS library for producing JSON in canonical format as specified by https://gibson042.github.io/canonicaljson-spec/. The provided interface matches that of native JSON object.
Installation
npm install canonicaljson
or
yarn add canonicaljson
Usage
const json = require('canonicaljson');
const obj = json.parse('{ "a": 12 }');
console.log(json.stringify(obj))
// or if you use ES6 modules
import { parse, stringify } from 'canonicaljson';
const obj = parse('{ "a": 12 }');
console.log(stringify(obj))
Development
Integration tests are located in the canonicaljson-spec
submodule.
To download them, you should run:
git submodule init
git submodule update
macOS
The tests need a version of readlink
that support the -v
option.
Macports and homebrew provide a coreutils package containing greadlink (GNU readlink).
You can do, for instance:
brew install coreutils
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
The tests also need the GNU version of awk
. It is provided by homebrew:
brew install gawk
The tests will run if you change #!/usr/bin/awk -f
to #!/usr/local/bin/gawk -f
in canonicaljson-spec/test/prettyjson.awk
:
sed -i "" s_/usr/bin/awk_/usr/local/bin/gawk_ canonicaljson-spec/test/prettyjson.awk
This change will be ignored by git
.