Amazon Ion Hash JavaScript
An implementation of Amazon Ion Hash in JavaScript.
Getting Started
This library is designed to work with Node 8/ES5/CommonJS.
Node
-
Add dependencies for ion-hash-js and its peerDependencies:
npm install --save-dev ion-hash-js npm install --save-dev ion-js npm install --save-dev jsbi
-
Note the examples below assume the availability of the following utility method:
{let sb = '';byteArray;return sb;} -
Use the library to generate the Ion hash of any value:
let ionHash = ;let digest = ionHash;console;produces:
digest: 8f 3b f4 b1 93 5c f4 69 c9 c1 0c 31 52 4b 26 25
-
Use cases for which a more efficient API is preferable should consider using the low-level HashReader API to generate an Ion hash:
let ion = ;let ionHash = ;let ionStr = '[1, 2, 3]';let hashReader = ionHash;hashReadernext;hashReadernext;let digest = hashReader;console;produces:
digest: 8f 3b f4 b1 93 5c f4 69 c9 c1 0c 31 52 4b 26 25
-
A low-level HashWriter API may be used to generate an Ion hash while writing Ion data:
let ion = ;let ionHash = ;let hashWriter = ionHash;hashWriter;hashWriter;hashWriter;hashWriter;hashWriter;let digest = hashWriter;console;produces:
digest: 8f 3b f4 b1 93 5c f4 69 c9 c1 0c 31 52 4b 26 25
Development
This repository contains a git submodule
called ion-hash-test
, which holds test data used by ion-hash-js
's unit tests.
The easiest way to clone the ion-hash-js
repository and initialize its ion-hash-test
submodule is to run the following command:
$ git clone --recursive https://github.com/amzn/ion-hash-js.git ion-hash-js
Alternatively, the submodule may be initialized independently from the clone by running the following commands:
$ git submodule init
$ git submodule update
Known Issues
Any tests commented out in tests/ion_hash_tests.ion are not expected to work at this time.
License
This library is licensed under the Apache 2.0 License.