wallet-core/node_modules/hullabaloo-config-manager/lib/readSafe.js
2017-05-28 00:40:43 +02:00

30 lines
587 B
JavaScript

'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