30 lines
769 B
JavaScript
30 lines
769 B
JavaScript
const nodegit = require('nodegit');
|
|
|
|
async function getStaged(repo) {
|
|
const head = await repo.getHeadCommit();
|
|
|
|
try {
|
|
const emptyTree = '4b825dc642cb6eb9a060e54bf8d69288fbee4904';
|
|
const headTree = await (head
|
|
? head.getTree()
|
|
: nodegit.Tree.lookup(repo, emptyTree)
|
|
);
|
|
return await nodegit.Diff.treeToIndex(repo, headTree, null);
|
|
} catch (err) {
|
|
console.warn('Cannot fetch staged changes:', err.message);
|
|
}
|
|
}
|
|
|
|
async function getUnstaged(repo) {
|
|
const Diff = nodegit.Diff;
|
|
return await Diff.indexToWorkdir(repo, null, {
|
|
flags: Diff.OPTION.SHOW_UNTRACKED_CONTENT
|
|
| Diff.OPTION.RECURSE_UNTRACKED_DIRS
|
|
});
|
|
}
|
|
|
|
module.exports = {
|
|
getStaged,
|
|
getUnstaged
|
|
};
|