12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- "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;
|