This repository has been archived on 2020-11-02. You can view files and clone it, but cannot push or open issues or pull requests.
TripSit_Suite/node_modules/pretty-quick/dist/index.js
2020-11-01 22:46:04 +00:00

94 lines
2.8 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _scms = _interopRequireDefault(require("./scms"));
var _processFiles = _interopRequireDefault(require("./processFiles"));
var _createIgnorer = _interopRequireDefault(require("./createIgnorer"));
var _createMatcher = _interopRequireDefault(require("./createMatcher"));
var _isSupportedExtension = _interopRequireDefault(require("./isSupportedExtension"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _default = (currentDirectory, {
config,
since,
staged,
pattern,
restage = true,
branch,
bail,
check,
ignorePath,
verbose,
onFoundSinceRevision,
onFoundChangedFiles,
onPartiallyStagedFile,
onExamineFile,
onCheckFile,
onWriteFile,
resolveConfig = true
} = {}) => {
const scm = (0, _scms.default)(currentDirectory);
if (!scm) {
throw new Error('Unable to detect a source control manager.');
}
const directory = scm.rootDirectory;
const revision = since || scm.getSinceRevision(directory, {
staged,
branch
});
onFoundSinceRevision && onFoundSinceRevision(scm.name, revision);
const rootIgnorer = (0, _createIgnorer.default)(directory, ignorePath);
const cwdIgnorer = currentDirectory !== directory ? (0, _createIgnorer.default)(currentDirectory, ignorePath) : () => true;
const changedFiles = scm.getChangedFiles(directory, revision, staged).filter((0, _isSupportedExtension.default)(resolveConfig)).filter((0, _createMatcher.default)(pattern)).filter(rootIgnorer).filter(cwdIgnorer);
const unstagedFiles = staged ? scm.getUnstagedChangedFiles(directory, revision).filter(_isSupportedExtension.default).filter((0, _createMatcher.default)(pattern)).filter(rootIgnorer).filter(cwdIgnorer) : [];
const wasFullyStaged = f => unstagedFiles.indexOf(f) < 0;
onFoundChangedFiles && onFoundChangedFiles(changedFiles);
const failReasons = new Set();
(0, _processFiles.default)(directory, changedFiles, {
check,
config,
onWriteFile: file => {
onWriteFile && onWriteFile(file);
if (bail) {
failReasons.add('BAIL_ON_WRITE');
}
if (staged && restage) {
if (wasFullyStaged(file)) {
scm.stageFile(directory, file);
} else {
onPartiallyStagedFile && onPartiallyStagedFile(file);
failReasons.add('PARTIALLY_STAGED_FILE');
}
}
},
onCheckFile: (file, isFormatted) => {
onCheckFile && onCheckFile(file, isFormatted);
if (!isFormatted) {
failReasons.add('CHECK_FAILED');
}
},
onExamineFile: verbose && onExamineFile
});
return {
success: failReasons.size === 0,
errors: Array.from(failReasons)
};
};
exports.default = _default;