Sha256: 8bb3e4367f033a7a1d9494cae10777d6f723b97a3137bba4cea19c049531b268
Contents?: true
Size: 1.52 KB
Versions: 69
Compression:
Stored size: 1.52 KB
Contents
var fs = require('fs'); var path = require('path'); var mkpath = function mkpath(dirpath, mode, callback) { dirpath = path.resolve(dirpath); if (typeof mode === 'function' || typeof mode === 'undefined') { callback = mode; mode = 0777 & (~process.umask()); } if (!callback) { callback = function () {}; } fs.stat(dirpath, function (err, stats) { if (err) { if (err.code === 'ENOENT') { mkpath(path.dirname(dirpath), mode, function (err) { if (err) { callback(err); } else { fs.mkdir(dirpath, mode, callback); } }); } else { callback(err); } } else if (stats.isDirectory()) { callback(null); } else { callback(new Error(dirpath + ' exists and is not a directory')); } }); }; mkpath.sync = function mkpathsync(dirpath, mode) { dirpath = path.resolve(dirpath); if (typeof mode === 'undefined') { mode = 0777 & (~process.umask()); } try { if (!fs.statSync(dirpath).isDirectory()) { throw new Error(dirpath + ' exists and is not a directory'); } } catch (err) { if (err.code === 'ENOENT') { mkpathsync(path.dirname(dirpath), mode); fs.mkdirSync(dirpath, mode); } else { throw err; } } }; module.exports = mkpath;
Version data entries
69 entries across 69 versions & 2 rubygems