From 7fff4499fd915bcea3fa93b1aa8b35f4fe7a6027 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 28 May 2017 00:38:50 +0200 Subject: add linting (and some initial fixes) --- .../lib/hashDependencies.js | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 node_modules/hullabaloo-config-manager/lib/hashDependencies.js (limited to 'node_modules/hullabaloo-config-manager/lib/hashDependencies.js') 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 -- cgit v1.2.3