- Add GETTING_STARTED.md with quick start guide and development modes - Add INSTALL.sh automated installation script - Add INSTALLATION_CHECKLIST.md, INSTALLATION_SUCCESS.md, and INSTALLATION_SUMMARY.md - Add QUICK_REFERENCE.md for common commands - Add SETUP_GUIDE.md with detailed setup instructions - Update README.md with improved project overview - Add did-wallet app dependencies and node_modules
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
/**
|
|
* @packageDocumentation
|
|
*
|
|
* A [Hash Mapped Trie](https://en.wikipedia.org/wiki/Hash_array_mapped_trie) implementation for JavaScript.
|
|
*
|
|
* This is used by [@helia/unixfs](https://www.npmjs.com/package/@helia/unixfs) for it's HAMT-sharded directory implementation.
|
|
*
|
|
* @example
|
|
*
|
|
* ```TypeScript
|
|
* import { createHAMT } from 'hamt-sharding'
|
|
* import crypto from 'crypto-promise'
|
|
*
|
|
* // decide how to hash buffers made from keys, can return a Promise
|
|
* const hashFn = async (buf) => {
|
|
* return crypto
|
|
* .createHash('sha256')
|
|
* .update(buf)
|
|
* .digest()
|
|
* }
|
|
*
|
|
* const bucket = createHAMT({
|
|
* hashFn: hashFn
|
|
* })
|
|
*
|
|
* await bucket.put('key', 'value')
|
|
*
|
|
* const output = await bucket.get('key')
|
|
* // output === 'value'
|
|
* ```
|
|
*/
|
|
import { Bucket } from './bucket.js';
|
|
import { wrapHash } from './consumable-hash.js';
|
|
export function createHAMT(options) {
|
|
if (options == null || options.hashFn == null) {
|
|
throw new Error('please define an options.hashFn');
|
|
}
|
|
const bucketOptions = {
|
|
bits: options.bits ?? 8,
|
|
hash: wrapHash(options.hashFn)
|
|
};
|
|
return new Bucket(bucketOptions);
|
|
}
|
|
export { Bucket };
|
|
//# sourceMappingURL=index.js.map
|