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

85 lines (70 loc) 2.39 kB
"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;