Files
Superalgos/Client/node_modules/simple-git/src/lib/tasks/log.js
T

88 lines
3.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.logTask = exports.parseLogOptions = void 0;
const parse_list_log_summary_1 = require("../parsers/parse-list-log-summary");
const utils_1 = require("../utils");
var excludeOptions;
(function (excludeOptions) {
excludeOptions[excludeOptions["--pretty"] = 0] = "--pretty";
excludeOptions[excludeOptions["max-count"] = 1] = "max-count";
excludeOptions[excludeOptions["maxCount"] = 2] = "maxCount";
excludeOptions[excludeOptions["n"] = 3] = "n";
excludeOptions[excludeOptions["file"] = 4] = "file";
excludeOptions[excludeOptions["format"] = 5] = "format";
excludeOptions[excludeOptions["from"] = 6] = "from";
excludeOptions[excludeOptions["to"] = 7] = "to";
excludeOptions[excludeOptions["splitter"] = 8] = "splitter";
excludeOptions[excludeOptions["symmetric"] = 9] = "symmetric";
excludeOptions[excludeOptions["multiLine"] = 10] = "multiLine";
excludeOptions[excludeOptions["strictDate"] = 11] = "strictDate";
})(excludeOptions || (excludeOptions = {}));
function prettyFormat(format, splitter) {
const fields = [];
const formatStr = [];
Object.keys(format).forEach((field) => {
fields.push(field);
formatStr.push(String(format[field]));
});
return [
fields, formatStr.join(splitter)
];
}
function userOptions(input) {
const output = Object.assign({}, input);
Object.keys(input).forEach(key => {
if (key in excludeOptions) {
delete output[key];
}
});
return output;
}
function parseLogOptions(opt = {}, customArgs = []) {
const splitter = opt.splitter || parse_list_log_summary_1.SPLITTER;
const format = opt.format || {
hash: '%H',
date: opt.strictDate === false ? '%ai' : '%aI',
message: '%s',
refs: '%D',
body: opt.multiLine ? '%B' : '%b',
author_name: '%aN',
author_email: '%ae'
};
const [fields, formatStr] = prettyFormat(format, splitter);
const suffix = [];
const command = [
`--pretty=format:${parse_list_log_summary_1.START_BOUNDARY}${formatStr}${parse_list_log_summary_1.COMMIT_BOUNDARY}`,
...customArgs,
];
const maxCount = opt.n || opt['max-count'] || opt.maxCount;
if (maxCount) {
command.push(`--max-count=${maxCount}`);
}
if (opt.from && opt.to) {
const rangeOperator = (opt.symmetric !== false) ? '...' : '..';
suffix.push(`${opt.from}${rangeOperator}${opt.to}`);
}
if (opt.file) {
suffix.push('--follow', opt.file);
}
utils_1.appendTaskOptions(userOptions(opt), command);
return {
fields,
splitter,
commands: [
...command,
...suffix,
],
};
}
exports.parseLogOptions = parseLogOptions;
function logTask(splitter, fields, customArgs) {
return {
commands: ['log', ...customArgs],
format: 'utf-8',
parser: parse_list_log_summary_1.createListLogSummaryParser(splitter, fields),
};
}
exports.logTask = logTask;
//# sourceMappingURL=log.js.map