@teambit/lanes
Version:
78 lines (76 loc) • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.removeLanes = removeLanes;
function _groupArray() {
const data = _interopRequireDefault(require("group-array"));
_groupArray = function () {
return data;
};
return data;
}
function _laneId() {
const data = require("@teambit/lane-id");
_laneId = function () {
return data;
};
return data;
}
function _scope() {
const data = require("@teambit/scope.remotes");
_scope = function () {
return data;
};
return data;
}
function _scope2() {
const data = require("@teambit/scope.network");
_scope2 = function () {
return data;
};
return data;
}
function _legacy() {
const data = require("@teambit/legacy.constants");
_legacy = function () {
return data;
};
return data;
}
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
async function removeLanes(consumer, lanes, remote, force) {
if (remote) {
const remoteLaneIds = lanes.map(lane => _laneId().LaneId.parse(lane));
const results = await removeRemoteLanes(consumer, remoteLaneIds, force);
const laneResults = results.map(r => r.removedLanes).flat();
return {
laneResults
};
}
if (!consumer) throw new Error('consumer must exist for local removal');
await consumer.scope.lanes.removeLanes(consumer.scope, lanes, force, consumer.getCurrentLaneId().name);
return {
laneResults: lanes
};
}
async function removeRemoteLanes(consumer, lanes, force) {
const remotes = consumer ? await (0, _scope().getScopeRemotes)(consumer.scope) : await _scope().Remotes.getGlobalRemotes();
const shouldGoToCentralHub = remotes.shouldGoToCentralHub(lanes.map(lane => lane.scope));
if (shouldGoToCentralHub) {
const http = await _scope2().Http.connect(_legacy().CENTRAL_BIT_HUB_URL, _legacy().CENTRAL_BIT_HUB_NAME);
return http.deleteViaCentralHub(lanes.map(lane => lane.toString()), {
force,
idsAreLanes: true
});
}
const context = {};
const groupedLanesByScope = (0, _groupArray().default)(lanes, 'scope');
const removeP = Object.keys(groupedLanesByScope).map(async key => {
const resolvedRemote = await remotes.resolve(key);
const idsStr = groupedLanesByScope[key].map(id => id.toString());
return resolvedRemote.deleteMany(idsStr, force, context, true);
});
return Promise.all(removeP);
}
//# sourceMappingURL=remove-lanes.js.map