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
85 lines (70 loc) • 2.39 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
function _defineProperty2() {
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
_defineProperty2 = function () {
return data;
};
return data;
}
class ExtensionsHelper {
constructor(scopes, command, bitJsonc, scopeHelper, fixtures, fsHelper) {
(0, _defineProperty2().default)(this, "scopes", void 0);
(0, _defineProperty2().default)(this, "command", void 0);
(0, _defineProperty2().default)(this, "bitJsonc", void 0);
(0, _defineProperty2().default)(this, "scopeHelper", void 0);
(0, _defineProperty2().default)(this, "fixtures", void 0);
(0, _defineProperty2().default)(this, "fs", void 0);
this.scopes = scopes;
this.command = command;
this.bitJsonc = bitJsonc;
this.scopeHelper = scopeHelper;
this.fixtures = fixtures;
this.fs = fsHelper;
}
addExtensionToWorkspace(extName, extConfig = {}) {
this.bitJsonc.addKeyVal(this.scopes.localPath, extName, extConfig);
}
addExtensionToVariant(variant, extName, extConfig = {}) {
this.bitJsonc.addToVariant(this.scopes.localPath, variant, extName, extConfig);
}
removeAllExtensionsFromVariant(variant) {
this.bitJsonc.setVariant(this.scopes.localPath, variant, {});
}
/**
* This will set the extension as the only extension of the variant
* If you want to add new one, use addExtensionToVariant
*
* @param {string} variant
* @param {string} extName
* @param {*} [extConfig={}]
* @memberof ExtensionsHelper
*/
setExtensionToVariant(variant, extName, extConfig = {}) {
this.removeAllExtensionsFromVariant(variant);
this.addExtensionToVariant(variant, extName, extConfig);
}
createNewComponentExtension(name = 'foo-ext', content, config) {
if (!content) {
content = `
module.exports = {
name: 'eslint',
dependencies: [],
provider: async () => {
console.log(\`hi there from an extension\`)
}
};
`;
}
this.fs.outputFile('foo-ext.js', content);
this.command.addComponent('foo-ext.js', {
i: name
});
this.addExtensionToWorkspace(name, config);
}
}
exports.default = ExtensionsHelper;