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
173 lines (129 loc) • 3.6 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 _uuid() {
const data = _interopRequireDefault(require("uuid"));
_uuid = function () {
return data;
};
return data;
}
function _path() {
const data = _interopRequireDefault(require("path"));
_path = function () {
return data;
};
return data;
}
function _filenamify() {
const data = _interopRequireDefault(require("filenamify"));
_filenamify = function () {
return data;
};
return data;
}
function _fs() {
const data = require("fs");
_fs = function () {
return data;
};
return data;
}
function _capsule() {
const data = require("@teambit/capsule");
_capsule = function () {
return data;
};
return data;
}
function _container() {
const data = _interopRequireDefault(require("./container"));
_container = function () {
return data;
};
return data;
}
function _containerExec() {
const data = _interopRequireDefault(require("./container-exec"));
_containerExec = function () {
return data;
};
return data;
}
class Capsule extends _capsule().Capsule {
constructor(container, fs, console = new (_capsule().Console)(), state, component) {
super(container, fs, console, state);
this.container = container;
this.fs = fs;
this.console = console;
this.state = state;
this.component = component;
(0, _defineProperty2().default)(this, "_wrkDir", void 0);
this._wrkDir = container.wrkDir;
}
get wrkDir() {
return (0, _fs().realpathSync)(this._wrkDir);
}
start() {
return this.container.start();
}
execNode(executable, args, exec) {
var _this = this;
return (0, _bluebird().coroutine)(function* () {
return _this.typedExec({
command: ['node', executable, ...(args.args || [])],
cwd: ''
}, exec);
})();
}
typedExec(opts, exec = new (_containerExec().default)()) {
var _this2 = this;
return (0, _bluebird().coroutine)(function* () {
return _this2.container.exec(opts, exec);
})();
}
outputFile(file, data, options) {
return this.container.outputFile(file, data, options);
}
removePath(dir) {
return this.container.removePath(dir);
}
symlink(src, dest) {
return this.container.symlink(src, dest);
}
static createFromComponent(component, baseDir, opts) {
return (0, _bluebird().coroutine)(function* () {
// TODO: make this a static method and combine with ComponentCapsule
const config = Object.assign({
alwaysNew: false,
name: undefined
}, opts);
const capsuleDirName = config.name || (0, _filenamify().default)(component.id.toString(), {
replacement: '_'
});
const wrkDir = _path().default.join(baseDir, config.alwaysNew ? `${capsuleDirName}_${(0, _uuid().default)()}` : capsuleDirName);
const container = new (_container().default)(wrkDir);
const capsule = new Capsule(container, container.fs, new (_capsule().Console)(), new (_capsule().State)(), component);
yield capsule.start();
return capsule;
})();
}
}
exports.default = Capsule;
;