git-command-helper
Version:
github command helper for nodejs
56 lines (50 loc) • 1.5 kB
JavaScript
// git-command-helper 2.1.0 by Dimas Lanjaka <dimaslanjaka@gmail.com> (https://www.webmanajemen.com)
;
var spawn = require('cross-spawn');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var spawn__namespace = /*#__PURE__*/_interopNamespaceDefault(spawn);
/**
* git status
* @param opt
* @returns
*/
function gitStatus(opt) {
// set porcelain true
if (typeof opt.porcelain !== "boolean") opt.porcelain = true;
let result;
if (opt.porcelain) {
result = spawn__namespace.sync("git", ["status", "--porcelain"], opt);
} else {
result = spawn__namespace.sync("git", ["status"], opt);
}
if (!opt.raw) {
return String(result.stdout).split(/\r?\n/gm).filter(str => str.length > 0).map(str => {
const exec = Array.from(/^([MD\\?]{1,2})\s(.*)/g.exec(str.trim()) || []);
// set `??` as untracked
if (exec[1] === "??") exec[1] = "U";
// convert as object
const obj = {
[exec[1]]: exec[2]
};
return obj;
});
} else {
return result;
}
}
exports.gitStatus = gitStatus;