Georg b3dd3db30b
Adding show_password_box
Signed-off-by: Georg <georg@lysergic.dev>
2021-06-25 07:28:29 +02:00

74 lines
2.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _micromatch = require("micromatch");
var _linter = _interopRequireDefault(require("./linter"));
var _utils = require("./utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class LintDirtyModulesPlugin {
constructor(lint, compiler, options) {
this.lint = lint;
this.compiler = compiler;
this.options = options;
this.startTime = Date.now();
this.prevTimestamps = {};
this.isFirstRun = true;
}
apply(compilation, callback) {
const fileTimestamps = compilation.fileTimestamps || new Map();
if (this.isFirstRun) {
this.isFirstRun = false;
this.prevTimestamps = fileTimestamps;
callback();
return;
}
const dirtyOptions = { ...this.options
};
const glob = (0, _utils.replaceBackslashes)(dirtyOptions.files.join('|'));
const changedFiles = this.getChangedFiles(fileTimestamps, glob);
this.prevTimestamps = fileTimestamps;
if (changedFiles.length) {
dirtyOptions.files = changedFiles;
(0, _linter.default)(this.lint, dirtyOptions, this.compiler, callback);
} else {
callback();
}
}
getChangedFiles(fileTimestamps, glob) {
const getTimestamps = fileSystemInfoEntry => {
return fileSystemInfoEntry && fileSystemInfoEntry.timestamp ? fileSystemInfoEntry.timestamp : fileSystemInfoEntry;
};
const hasFileChanged = (filename, fileSystemInfoEntry) => {
const prevTimestamp = getTimestamps(this.prevTimestamps.get(filename));
const timestamp = getTimestamps(fileSystemInfoEntry);
return (prevTimestamp || this.startTime) < (timestamp || Infinity);
};
const changedFiles = [];
for (const [filename, timestamp] of fileTimestamps.entries()) {
if (hasFileChanged(filename, timestamp) && (0, _micromatch.isMatch)(filename, glob)) {
changedFiles.push((0, _utils.replaceBackslashes)(filename));
}
}
return changedFiles;
}
}
exports.default = LintDirtyModulesPlugin;