UNPKG

chainscript

Version:
54 lines (36 loc) 1.3 kB
'use strict'; exports.__esModule = true; exports['default'] = hashFile; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _crypto = require('crypto'); var _crypto2 = _interopRequireDefault(_crypto); var _multihashes = require('multihashes'); var _multihashes2 = _interopRequireDefault(_multihashes); var _bs58 = require('bs58'); var _bs582 = _interopRequireDefault(_bs58); var HASH_MAP = { sha1: 'sha1', sha256: 'sha2-256', sha512: 'sha2-512' }; exports.HASH_MAP = HASH_MAP; function hashFile(input, algorithm) { return new Promise(function (resolve, reject) { var algorithmName = HASH_MAP[algorithm]; if (typeof algorithmName === 'undefined') { throw new Error('Unsupported algorithm: ' + algorithm); } var hash = _crypto2['default'].createHash(algorithm); var reader = typeof input === 'string' ? _fs2['default'].createReadStream(input) : input; reader.on('error', reject); reader.on('data', function (data) { return hash.update(data); }); reader.on('end', function () { var res = _bs582['default'].encode(_multihashes2['default'].encode(hash.digest(), algorithmName)); resolve(res); }); }); }