UNPKG

@nathanfaucett/file_utils

Version:
61 lines (56 loc) 1.74 kB
var fs = require("fs"), dive = require("./dive"); module.exports = remove; function remove(path, callback) { var called = false; function done(error) { if (!called) { callback(error); called = true; } } fs.stat(path, function onState(error, stat) { if (error) { callback(error); } else if (stat.isDirectory()) { dive( path, { directories: true, all: true }, function onAction(file, next) { remove(file.path, next); }, function onDone(error) { if (error) { done(error); } else { dive( path, { files: false, directories: true }, function onAction(file, next) { remove(file.path, next); }, function onDone(error) { if (error) { done(error); } else { fs.rmdir(path, done); } } ); } } ); } else { fs.unlink(path, function(error) { if (error) { done(error); } else { done(); } }); } }); }