linked-deps
Version:
manage symlinked dependencies
54 lines (39 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isLinked = isLinked;
exports.getLinked = getLinked;
exports.getLinkedPaths = getLinkedPaths;
exports.default = void 0;
var _path = _interopRequireDefault(require("path"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _lodash = _interopRequireDefault(require("lodash"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getPath(dependency) {
return _path.default.join(process.cwd(), 'node_modules', dependency);
}
function isLinked(dependency) {
var dependencyPath = getPath(dependency);
var stats = _fsExtra.default.lstatSync(dependencyPath);
return stats.isSymbolicLink();
}
function getLinked() {
var pkgPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _path.default.resolve(process.cwd(), 'package.json');
var pkg = require(pkgPath);
var dependencies = _lodash.default.concat(_lodash.default.keys(pkg.devDependencies || {}), _lodash.default.keys(pkg.dependencies || {}));
return _lodash.default.filter(dependencies, function (dependency) {
return isLinked(dependency);
});
}
function getLinkedPaths(pkgPath) {
return _lodash.default.map(getLinked(pkgPath), function (dependency) {
return _fsExtra.default.realpathSync(getPath(dependency));
});
}
var _default = {
isLinked,
getLinked,
getLinkedPaths
};
exports.default = _default;