@nathanfaucett/file_utils
Version:
file utils for node.js
42 lines (35 loc) • 1.08 kB
JavaScript
var fs = require("fs"),
isFunction = require("@nathanfaucett/is_function"),
filePath = require("@nathanfaucett/file_path"),
mkdirP = require("./mkdirP");
module.exports = writeFile;
function writeFile(filename, data, options, callback) {
var dirname;
if (isFunction(options)) {
callback = options;
options = {};
}
dirname = filePath.dirname(filename);
fs.stat(dirname, function onStat(error, stat) {
function writeFile(error) {
if (error) {
callback(error);
} else {
fs.writeFile(filename, data, options, function onWriteFile(
error
) {
if (error) {
callback(error);
} else {
callback(undefined);
}
});
}
}
if (!stat || !stat.isDirectory()) {
mkdirP(filePath.dirname(filename), options.mode, writeFile);
} else {
writeFile();
}
});
}