simple-git
Version:
Simple GIT interface for node.js
77 lines • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const git_response_error_1 = require("../errors/git-response-error");
const parse_branch_delete_1 = require("../parsers/parse-branch-delete");
const parse_branch_1 = require("../parsers/parse-branch");
function containsDeleteBranchCommand(commands) {
const deleteCommands = ['-d', '-D', '--delete'];
return commands.some(command => deleteCommands.includes(command));
}
exports.containsDeleteBranchCommand = containsDeleteBranchCommand;
function branchTask(customArgs) {
const isDelete = containsDeleteBranchCommand(customArgs);
const commands = ['branch', ...customArgs];
if (commands.length === 1) {
commands.push('-a');
}
if (!commands.includes('-v')) {
commands.splice(1, 0, '-v');
}
return {
format: 'utf-8',
commands,
parser(stdOut, stdErr) {
if (isDelete) {
return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).all[0];
}
return parse_branch_1.parseBranchSummary(stdOut, stdErr);
},
};
}
exports.branchTask = branchTask;
function branchLocalTask() {
return {
format: 'utf-8',
commands: ['branch', '-v'],
parser(stdOut, stdErr) {
return parse_branch_1.parseBranchSummary(stdOut, stdErr);
},
};
}
exports.branchLocalTask = branchLocalTask;
function deleteBranchesTask(branches, forceDelete = false) {
return {
format: 'utf-8',
commands: ['branch', '-v', forceDelete ? '-D' : '-d', ...branches],
parser(stdOut, stdErr) {
return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr);
},
onError(exitCode, error, done, fail) {
if (!parse_branch_delete_1.hasBranchDeletionError(error, exitCode)) {
return fail(error);
}
done(error);
},
concatStdErr: true,
};
}
exports.deleteBranchesTask = deleteBranchesTask;
function deleteBranchTask(branch, forceDelete = false) {
const task = {
format: 'utf-8',
commands: ['branch', '-v', forceDelete ? '-D' : '-d', branch],
parser(stdOut, stdErr) {
return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).branches[branch];
},
onError(exitCode, error, _, fail) {
if (!parse_branch_delete_1.hasBranchDeletionError(error, exitCode)) {
return fail(error);
}
throw new git_response_error_1.GitResponseError(task.parser(error, ''), error);
},
concatStdErr: true,
};
return task;
}
exports.deleteBranchTask = deleteBranchTask;
//# sourceMappingURL=branch.js.map