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
156 lines (116 loc) • 3.73 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
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;
}
function _ramda() {
const data = _interopRequireDefault(require("ramda"));
_ramda = function () {
return data;
};
return data;
}
function path() {
const data = _interopRequireWildcard(require("path"));
path = function () {
return data;
};
return data;
}
function _fsExtra() {
const data = _interopRequireDefault(require("fs-extra"));
_fsExtra = function () {
return data;
};
return data;
}
function _lodash() {
const data = _interopRequireDefault(require("lodash.set"));
_lodash = function () {
return data;
};
return data;
}
class BitJsonHelper {
constructor(scopes) {
(0, _defineProperty2().default)(this, "scopes", void 0);
this.scopes = scopes;
}
read(bitJsonDir = this.scopes.localPath) {
const bitJsonPath = path().join(bitJsonDir, 'bit.json');
return _fsExtra().default.existsSync(bitJsonPath) ? _fsExtra().default.readJSONSync(bitJsonPath) : {};
}
write(bitJson, bitJsonDir = this.scopes.localPath) {
const bitJsonPath = path().join(bitJsonDir, 'bit.json');
return _fsExtra().default.writeJSONSync(bitJsonPath, bitJson, {
spaces: 2
});
}
addKeyVal(key, val, bitJsonDir = this.scopes.localPath) {
const bitJson = this.read(bitJsonDir);
bitJson[key] = val;
this.write(bitJson, bitJsonDir);
}
addOverrides(overrides) {
const bitJson = this.read();
bitJson.overrides = overrides;
this.write(bitJson);
}
addDefaultScope(scope = this.scopes.remote) {
this.addKeyVal('defaultScope', scope);
}
getEnvByType(bitJson, envType) {
const basePath = ['env', envType];
const env = _ramda().default.path(basePath, bitJson);
const envName = Object.keys(env)[0];
return env[envName];
}
addToRawConfigOfEnv(bitJsonPath = this.scopes.localPath, key, val, envType) {
this._addKeyValToEnvProp(bitJsonPath, 'rawConfig', key, val, envType);
}
manageWorkspaces(withWorkspaces = true) {
const bitJson = this.read();
bitJson.packageManager = 'yarn';
bitJson.manageWorkspaces = withWorkspaces;
bitJson.useWorkspaces = withWorkspaces;
this.write(bitJson);
}
setComponentsDir(content) {
const bitJson = this.read();
bitJson.componentsDefaultDirectory = content;
this.write(bitJson);
}
corrupt(bitJsonPath = path().join(this.scopes.localPath, 'bit.json')) {
_fsExtra().default.writeFileSync(bitJsonPath, '"corrupted');
}
modifyField(key, value) {
const bitJson = this.read();
bitJson[key] = value;
this.write(bitJson);
}
_getEnvNameByType(bitJson, envType) {
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
const env = bitJson.env[envType];
const envName = typeof env === 'string' ? env : Object.keys(env)[0];
return envName;
}
_addKeyValToEnvProp(bitJsonDir = this.scopes.localPath, propName, key, val, envType) {
const bitJson = this.read(bitJsonDir);
const envName = this._getEnvNameByType(bitJson, envType);
const propPath = ['env', envType, envName, propName];
const prop = _ramda().default.pathOr({}, propPath, bitJson);
prop[key] = val;
(0, _lodash().default)(bitJson, propPath, prop);
this.write(bitJson, bitJsonDir);
}
}
exports.default = BitJsonHelper;