diff options
Diffstat (limited to 'node_modules/hullabaloo-config-manager/lib/readSafe.js')
-rw-r--r-- | node_modules/hullabaloo-config-manager/lib/readSafe.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/node_modules/hullabaloo-config-manager/lib/readSafe.js b/node_modules/hullabaloo-config-manager/lib/readSafe.js new file mode 100644 index 000000000..568258ac6 --- /dev/null +++ b/node_modules/hullabaloo-config-manager/lib/readSafe.js @@ -0,0 +1,29 @@ +'use strict' + +const gfs = require('graceful-fs') + +function readSafe (source, cache) { + if (cache && cache.files && cache.files.has(source)) { + return cache.files.get(source) + } + + const promise = new Promise((resolve, reject) => { + gfs.readFile(source, (err, contents) => { + if (err) { + if (err.code === 'ENOENT') { + resolve(null) + } else { + reject(err) + } + } else { + resolve(contents) + } + }) + }) + + if (cache && cache.files) { + cache.files.set(source, promise) + } + return promise +} +module.exports = readSafe |