install-module-linked
Version:
Installs and symlinks a module into node_modules
32 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return renameWithFallback;
}
});
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function renameWithFallback(src, dest, callback) {
_fs.default.rename(src, dest, function(err) {
if (!err) return callback();
// Another process may have already created dest - check if it exists
// On Windows, concurrent renames to the same destination throw EPERM
if (err.code === 'EEXIST' || err.code === 'ENOTEMPTY' || err.code === 'EPERM') {
_fs.default.stat(dest, function(statErr) {
if (!statErr) return callback(); // dest exists, race was won by another process
callback(err); // dest doesn't exist, actual error
});
return;
}
callback(err);
});
}
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }