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
141 lines (104 loc) • 3.59 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _bluebird() {
const data = require("bluebird");
_bluebird = function () {
return data;
};
return data;
}
function _defineProperty2() {
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
_defineProperty2 = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _sources() {
const data = require("../consumer/component/sources");
_sources = function () {
return data;
};
return data;
}
function _linkGenerator() {
const data = require("../links/link-generator");
_linkGenerator = function () {
return data;
};
return data;
}
/**
* This is a formal API for extension developers, changes in this API should result a major version.
*/
class ExtensionIsolateResult {
constructor(isolator, componentWithDependencies) {
(0, _defineProperty2().default)(this, "isolator", void 0);
(0, _defineProperty2().default)(this, "capsule", void 0);
(0, _defineProperty2().default)(this, "componentWithDependencies", void 0);
this.isolator = isolator;
this.capsule = isolator.capsule;
this.componentWithDependencies = componentWithDependencies;
}
capsuleExec(cmd, options) {
this.isolator.capsuleExec(cmd, options);
}
writeDists(builtFiles, mainDist) {
var _this = this;
return (0, _bluebird().coroutine)(function* () {
const capsuleComponent = _this.componentWithDependencies.component;
if (!capsuleComponent.dists || capsuleComponent.dists.isEmpty()) {
if (!builtFiles) {
return;
}
capsuleComponent.setDists(builtFiles.map(file => new (_sources().Dist)(file)), mainDist);
} // Make sure we are going to write the dists files (also for testers)
capsuleComponent.dists.writeDistsFiles = true;
const distsToWrite = yield capsuleComponent.dists.getDistsToWrite(capsuleComponent, _this.isolator.capsuleBitMap, null, true, _this.componentWithDependencies);
if (distsToWrite) {
distsToWrite.persistAllToCapsule(_this.capsule);
}
})();
}
writeLinks() {
this.isolator.writeLinks();
}
getDependenciesLinks() {
const links = (0, _linkGenerator().getComponentsDependenciesLinks)([this.componentWithDependencies], null, false, this.isolator.capsuleBitMap);
return links.files;
}
addSharedDir(filesToAdd) {
const sharedDir = this.componentWithDependencies.component.originallySharedDir;
let updatedFiles = filesToAdd;
if (sharedDir) {
updatedFiles = filesToAdd.map(file => {
const fileAsAbstractVinyl = _sources().AbstractVinyl.fromVinyl(file);
fileAsAbstractVinyl.updatePaths({
newRelative: _path().default.join(sharedDir, file.relative)
});
return fileAsAbstractVinyl;
});
}
return updatedFiles;
}
installPackages(packages = []) {
var _this2 = this;
return (0, _bluebird().coroutine)(function* () {
yield _this2.isolator.installPackagesOnRoot(packages); // after installing packages on capsule root, some links/symlinks from node_modules might
// be deleted. rewrite the links to recreate them.
yield _this2.isolator.writeLinksOnNodeModules();
})();
}
}
exports.default = ExtensionIsolateResult;
;