UNPKG

prepush-if-changed

Version:

A tool that runs your commands if any git-pushed files match the glob written to be used as a pre-push hook

54 lines (44 loc) 1.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.getCommittedFiles = exports.checkExistanceOnRemote = exports.UnknownRevisionError = void 0; var _gitChangedFiles = _interopRequireDefault(require("git-changed-files")); var _gitBranch = _interopRequireDefault(require("git-branch")); var _gitBranchParent = _interopRequireDefault(require("git-branch-parent")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var UnknownRevisionError = Error('Unknown revision or path not in the working tree'); exports.UnknownRevisionError = UnknownRevisionError; var checkExistanceOnRemote = function checkExistanceOnRemote(branch) { return new Promise(function (resolve) { (0, _gitChangedFiles["default"])({ baseBranch: "origin/".concat(branch) }).then(function () { return resolve(true); })["catch"](function () { return resolve(false); }); }); }; exports.checkExistanceOnRemote = checkExistanceOnRemote; var getCommittedFiles = function getCommittedFiles(branch) { return checkExistanceOnRemote(branch).then(function (exists) { return exists ? branch : (0, _gitBranchParent["default"])(); }).then(function (baseBranch) { var options = { baseBranch: "origin/".concat(baseBranch), showUnCommitted: false }; return (0, _gitChangedFiles["default"])(options); }).then(function (diff) { return diff.committedFiles; })["catch"](function (err) { throw UnknownRevisionError; }); }; exports.getCommittedFiles = getCommittedFiles; var _default = { getCommittedFiles: getCommittedFiles, getBranch: _gitBranch["default"].sync }; exports["default"] = _default;