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
108 lines (83 loc) • 3.35 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.applyVersionReport = void 0;
function _defineProperty2() {
const data = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
_defineProperty2 = function () {
return data;
};
return data;
}
function _chalk() {
const data = _interopRequireDefault(require("chalk"));
_chalk = function () {
return data;
};
return data;
}
function _consumer() {
const data = require("../../../api/consumer");
_consumer = function () {
return data;
};
return data;
}
function _mergeVersion() {
const data = require("../../../consumer/versions-ops/merge-version");
_mergeVersion = function () {
return data;
};
return data;
}
function _constants() {
const data = require("../../../constants");
_constants = function () {
return data;
};
return data;
}
const applyVersionReport = (components, addName = true, showVersion = false) => {
const tab = addName ? '\t' : '';
return components.map(component => {
const name = showVersion ? component.id.toString() : component.id.toStringWithoutVersion();
const files = Object.keys(component.filesStatus).map(file => {
const note = component.filesStatus[file] === _mergeVersion().FileStatus.manual ? _chalk().default.white('automatic merge failed. please fix conflicts manually and then tag the results.') : '';
return `${tab}${component.filesStatus[file]} ${_chalk().default.bold(file)} ${note}`;
}).join('\n');
return `${addName ? name : ''}\n${_chalk().default.cyan(files)}`;
}).join('\n\n');
};
exports.applyVersionReport = applyVersionReport;
class Merge {
constructor() {
(0, _defineProperty2().default)(this, "name", 'merge <version> <ids...>');
(0, _defineProperty2().default)(this, "description", `merge changes of different component versions
${(0, _constants().WILDCARD_HELP)('merge 0.0.1')}`);
(0, _defineProperty2().default)(this, "alias", '');
(0, _defineProperty2().default)(this, "opts", [['o', 'ours', 'in case of a conflict, override the used version with the current modification'], ['t', 'theirs', 'in case of a conflict, override the current modification with the specified version'], ['m', 'manual', 'in case of a conflict, leave the files with a conflict state to resolve them manually later']]);
(0, _defineProperty2().default)(this, "loader", true);
}
action([version, ids], {
ours = false,
theirs = false,
manual = false
}) {
const mergeStrategy = (0, _mergeVersion().getMergeStrategy)(ours, theirs, manual);
return (0, _consumer().merge)(version, ids, mergeStrategy);
}
report({
components,
version
}) {
// $FlowFixMe version is set in case of merge command
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
const title = `successfully merged components from version ${_chalk().default.bold(version)}\n`; // $FlowFixMe components is set in case of merge command
// @ts-ignore AUTO-ADDED-AFTER-MIGRATION-PLEASE-FIX!
const componentsStr = applyVersionReport(components);
return _chalk().default.underline(title) + _chalk().default.green(componentsStr);
}
}
exports.default = Merge;