fs2
Version:
fs (file system package) extensions
36 lines (31 loc) • 848 B
JavaScript
;
const isCallable = require("es5-ext/object/is-callable")
, isValue = require("es5-ext/object/is-value")
, deferred = require("deferred")
, { resolve } = require("path")
, original = require("fs").unlink;
const unlink = function (path, options) {
const def = deferred();
original(path, err => {
if (err) {
if (err.code === "ENOENT" && options.loose) def.resolve();
else def.reject(err);
return;
}
def.resolve();
});
return def.promise;
};
unlink.returnsPromise = true;
module.exports = exports = function (path, options = {}, cb = null) {
path = resolve(String(path));
if (!isValue(cb) && isCallable(options)) {
cb = options;
options = {};
} else {
options = Object(options);
}
return unlink(path, options).cb(cb);
};
exports.returnsPromise = true;
exports.unlink = unlink;