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
153 lines (112 loc) • 4.23 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.makeEnvFromModel = makeEnvFromModel;
exports.default = void 0;
function _defineProperty2() {
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
_defineProperty2 = function () {
return data;
};
return data;
}
function _bluebird() {
const data = require("bluebird");
_bluebird = function () {
return data;
};
return data;
}
function _constants() {
const data = require("../constants");
_constants = function () {
return data;
};
return data;
}
function _logger() {
const data = _interopRequireDefault(require("../logger/logger"));
_logger = function () {
return data;
};
return data;
}
function _testerExtension() {
const data = _interopRequireDefault(require("./tester-extension"));
_testerExtension = function () {
return data;
};
return data;
}
function _compilerExtension() {
const data = _interopRequireDefault(require("./compiler-extension"));
_compilerExtension = function () {
return data;
};
return data;
}
function _envExtension() {
const data = _interopRequireDefault(require("./env-extension"));
_envExtension = function () {
return data;
};
return data;
}
function _baseExtension() {
const data = _interopRequireDefault(require("./base-extension"));
_baseExtension = function () {
return data;
};
return data;
}
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2().default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var _default = /*#__PURE__*/function () {
var _makeEnv = (0, _bluebird().coroutine)(function* (envType, props) {
_logger().default.silly(`env-factory, create ${envType}`);
props.envType = envType;
props.throws = true;
const envExtensionProps = yield _envExtension().default.load(props);
const extension = getEnvInstance(envType, envExtensionProps);
if (extension.loaded) {
const throws = true;
yield extension.init(throws);
}
return extension;
});
function makeEnv(_x, _x2) {
return _makeEnv.apply(this, arguments);
}
return makeEnv;
}();
exports.default = _default;
function makeEnvFromModel(_x3, _x4) {
return _makeEnvFromModel.apply(this, arguments);
}
function _makeEnvFromModel() {
_makeEnvFromModel = (0, _bluebird().coroutine)(function* (envType, modelObject) {
_logger().default.silly(`env-factory, create ${envType} from model`);
if (!modelObject) return undefined;
const actualObject = typeof modelObject === 'string' ? _objectSpread({
envType
}, _baseExtension().default.transformStringToModelObject(modelObject)) : _objectSpread({
envType
}, modelObject);
const envExtensionProps = yield _envExtension().default.loadFromModelObject(actualObject);
const extension = getEnvInstance(envType, envExtensionProps);
return extension;
});
return _makeEnvFromModel.apply(this, arguments);
}
function getEnvInstance(envType, envExtensionProps) {
switch (envType) {
case _constants().COMPILER_ENV_TYPE:
return new (_compilerExtension().default)(envExtensionProps);
case _constants().TESTER_ENV_TYPE:
return new (_testerExtension().default)(envExtensionProps);
default:
throw new Error(`unrecognized env type ${envType}`);
}
}
;