morbo-cli
Version:
… All tech debt is vermin in the eyes of Morbo!
38 lines (37 loc) • 1.58 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var isbinaryfile_1 = __importDefault(require("isbinaryfile"));
var minimatch_1 = __importDefault(require("minimatch"));
function fileFilterer(_a) {
var ignoredDirectories = _a.ignoredDirectories, filesToScan = _a.filesToScan;
return function (fileInformation) {
var shouldIgnoreDirectory = false;
var shouldIgnoreFile = true;
var letTheFileThrough;
ignoredDirectories.forEach(function (directoryPattern) {
if (shouldIgnoreDirectory)
return;
shouldIgnoreDirectory = minimatch_1.default(fileInformation.path, directoryPattern, {
dot: true,
});
});
if (!shouldIgnoreDirectory) {
filesToScan.forEach(function (filePattern) {
if (!shouldIgnoreFile)
return;
shouldIgnoreFile = !minimatch_1.default(fileInformation.path, filePattern);
});
}
letTheFileThrough = !(shouldIgnoreDirectory ||
(!shouldIgnoreDirectory && shouldIgnoreFile));
// Never let binary files through, searching them for comments will make no sense...
if (letTheFileThrough && isbinaryfile_1.default.sync(fileInformation.fullPath)) {
letTheFileThrough = false;
}
return letTheFileThrough;
};
}
exports.default = fileFilterer;