ensure-file
Version:
Ensures that the file path exists.
38 lines (30 loc) • 824 B
JavaScript
var existsFile = require('exists-file')
var fs = require('graceful-fs')
var mkdirp = require('mkdirp')
var path = require('path')
function noop () {}
function createFile (file, cb) {
cb = cb || noop
function makeFile () {
return fs.writeFile(file, '', cb)
}
existsFile(file, function (fileExists) {
if (fileExists) return cb()
var dir = path.dirname(file)
existsFile(dir, function (dirExists) {
if (dirExists) return makeFile()
mkdirp(dir, function (err) {
if (err) return cb(err)
return makeFile()
})
})
})
}
createFile.sync = function createFileSync (file) {
if (existsFile.sync(file)) return
var dir = path.dirname(file)
if (!existsFile.sync(dir)) mkdirp.sync(dir)
return fs.writeFileSync(file, '')
}
module.exports = createFile