UNPKG

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
"use strict"; 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); }