bit-bin
Version:
<a href="https://opensource.org/licenses/Apache-2.0"><img alt="apache" src="https://img.shields.io/badge/License-Apache%202.0-blue.svg"></a> <a href="https://github.com/teambit/bit/blob/master/CONTRIBUTING.md"><img alt="prs" src="https://img.shields.io/b
96 lines (73 loc) • 2.84 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.symlinkDependenciesToCapsules = symlinkDependenciesToCapsules;
function _bluebird() {
const data = require("bluebird");
_bluebird = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _componentIdToPackageName() {
const data = _interopRequireDefault(require("../../utils/bit/component-id-to-package-name"));
_componentIdToPackageName = function () {
return data;
};
return data;
}
function _symlink() {
const data = _interopRequireDefault(require("../../links/symlink"));
_symlink = function () {
return data;
};
return data;
}
function _component() {
const data = require("../component");
_component = function () {
return data;
};
return data;
}
function symlinkDependenciesToCapsules(_x, _x2) {
return _symlinkDependenciesToCapsules.apply(this, arguments);
}
function _symlinkDependenciesToCapsules() {
_symlinkDependenciesToCapsules = (0, _bluebird().coroutine)(function* (capsules, capsuleList) {
yield Promise.all(capsules.map(capsule => {
// @ts-ignore
return symlinkComponent(capsule.component, capsuleList);
}));
});
return _symlinkDependenciesToCapsules.apply(this, arguments);
}
function symlinkComponent(_x3, _x4) {
return _symlinkComponent.apply(this, arguments);
}
function _symlinkComponent() {
_symlinkComponent = (0, _bluebird().coroutine)(function* (component, capsuleList) {
const componentCapsule = capsuleList.getCapsuleIgnoreScopeAndVersion(new (_component().ComponentID)(component.id));
if (!componentCapsule) throw new Error(`unable to find the capsule for ${component.id.toString()}`);
const allDeps = component.getAllDependenciesIds();
const symlinks = allDeps.map(depId => {
const packageName = (0, _componentIdToPackageName().default)(depId, component.bindingPrefix, component.defaultScope);
const devCapsule = capsuleList.getCapsuleIgnoreScopeAndVersion(new (_component().ComponentID)(depId));
if (!devCapsule) throw new Error(`unable to find the capsule for ${depId.toStringWithoutVersion()}`);
const devCapsulePath = devCapsule.wrkDir; // @todo: this is a hack, the capsule should be the one responsible to symlink, this works only for FS capsules.
const dest = _path().default.join(componentCapsule.wrkDir, 'node_modules', packageName);
return new (_symlink().default)(devCapsulePath, dest, component.id);
});
yield Promise.all(symlinks.map(symlink => symlink.write()));
});
return _symlinkComponent.apply(this, arguments);
}
;