diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:38:50 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-28 00:40:43 +0200 |
commit | 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 (patch) | |
tree | 6de9a1aebd150a23b7f8c273ec657a5d0a18fe3e /node_modules/hullabaloo-config-manager/lib/hashDependencies.js | |
parent | 963b7a41feb29cc4be090a2446bdfe0c1f1bcd81 (diff) |
add linting (and some initial fixes)
Diffstat (limited to 'node_modules/hullabaloo-config-manager/lib/hashDependencies.js')
-rw-r--r-- | node_modules/hullabaloo-config-manager/lib/hashDependencies.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/node_modules/hullabaloo-config-manager/lib/hashDependencies.js b/node_modules/hullabaloo-config-manager/lib/hashDependencies.js new file mode 100644 index 000000000..9587cee1e --- /dev/null +++ b/node_modules/hullabaloo-config-manager/lib/hashDependencies.js @@ -0,0 +1,44 @@ +'use strict' + +const packageHash = require('package-hash') +const md5Hex = require('md5-hex') + +const errors = require('./errors') +const readSafe = require('./readSafe') + +function hashFile (filename, cache) { + return readSafe(filename, cache) + .then(contents => { + if (!contents) throw new errors.BadDependencyError(filename) + + return md5Hex(contents) + }) +} + +function hashPackage (filename, fromPackage) { + return packageHash(`${fromPackage}/package.json`) + .catch(err => { + throw new errors.BadDependencyError(filename, err) + }) +} + +function hashDependency (filename, fromPackage, cache) { + if (cache && cache.dependencyHashes && cache.dependencyHashes.has(filename)) { + return cache.dependencyHashes.get(filename) + } + + const promise = fromPackage + ? hashPackage(filename, fromPackage) + : hashFile(filename, cache) + + if (cache && cache.dependencyHashes) { + cache.dependencyHashes.set(filename, promise) + } + return promise +} + +function hashDependencies (dependencies, cache) { + const promises = dependencies.map(item => hashDependency(item.filename, item.fromPackage, cache)) + return Promise.all(promises) +} +module.exports = hashDependencies |