UNPKG

chainscript

Version:
69 lines (47 loc) 1.77 kB
'use strict'; exports.__esModule = true; exports['default'] = hashFiles; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _objectPath = require('object-path'); var _objectPath2 = _interopRequireDefault(_objectPath); var _ignore = require('ignore'); var _ignore2 = _interopRequireDefault(_ignore); var _walkDir = require('./walkDir'); var _walkDir2 = _interopRequireDefault(_walkDir); var _hashFile = require('./hashFile'); var _hashFile2 = _interopRequireDefault(_hashFile); var ignorer = _ignore2['default']().addIgnoreFile(_ignore2['default'].select(['.csignore', '.gitignore'])); function hashDir(cwd, dir, algorithm, hashes) { return _walkDir2['default'](dir, function (files) { return ignorer.filter(files.map(function (f) { return _path2['default'].relative(cwd, f); })); }, function (file) { return _hashFile2['default'](file, algorithm).then(function (hash) { return hashes[hash] = _path2['default'].relative(cwd, file); }); }); } function hashFiles(cwd, paths) { var algorithm = arguments.length <= 2 || arguments[2] === undefined ? 'sha256' : arguments[2]; var root = arguments.length <= 3 || arguments[3] === undefined ? '' : arguments[3]; var hashes = {}; var dirs = [].concat(paths); var next = function next() { if (dirs.length === 0) { var json = undefined; if (root) { json = {}; _objectPath2['default'].set(json, root || '', hashes); } else { json = hashes; } return json; } return hashDir(cwd, dirs.shift(), algorithm, hashes).then(next); }; return next(); } module.exports = exports['default'];