pnpm
Version:
Fast, disk space efficient package manager
34 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const logger_1 = require("@pnpm/logger");
const isInnerLink = require("is-inner-link");
const isSubdir = require("is-subdir");
const mkdirp = require("mkdirp-promise");
const fs = require("mz/fs");
const path = require("path");
async function safeIsInnerLink(importerModulesDir, depName, opts) {
try {
const link = await isInnerLink(importerModulesDir, depName);
if (link.isInner)
return true;
if (isSubdir(opts.storePath, link.target))
return true;
return link.target;
}
catch (err) {
if (err.code === 'ENOENT')
return true;
if (opts.hideAlienModules) {
logger_1.default.warn({
message: `Moving ${depName} that was installed by a different package manager to "node_modules/.ignored`,
prefix: opts.prefix,
});
const ignoredDir = path.join(importerModulesDir, '.ignored', depName);
await mkdirp(path.dirname(ignoredDir));
await fs.rename(path.join(importerModulesDir, depName), ignoredDir);
}
return true;
}
}
exports.default = safeIsInnerLink;
//# sourceMappingURL=safeIsInnerLink.js.map