eslint-config-atomic
Version:
Eslint config used in atom-ide-community
41 lines (40 loc) • 1.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.findFilesForGroups = void 0;
const fs_1 = require("fs");
const path_1 = require("path");
const anymatch_1 = __importDefault(require("anymatch"));
function findFilesForGroups(cwd, earlyExitSearchGroup, exhaustiveSearchGroup, ignored) {
const status = [false, false];
searchDirectory(cwd, status, earlyExitSearchGroup, exhaustiveSearchGroup, ignored);
return status;
}
exports.findFilesForGroups = findFilesForGroups;
function searchDirectory(directory, status, earlyExitSearchGroup, exhaustiveSearchGroup, ignored) {
// recursively search the current folder for a file with the given fileEnding, ignoring the given folders, and return true as soon as one is found
const files = (0, fs_1.readdirSync)(directory, { withFileTypes: true, recursive: false });
for (const file of files) {
const path = (0, path_1.join)(directory, file.name);
if (file.isDirectory()) {
// if the folder is not ignored, search it recursively
if (!(0, anymatch_1.default)(ignored, path)) {
if (searchDirectory(path, status, earlyExitSearchGroup, exhaustiveSearchGroup, ignored)) {
return true; // exit
}
}
}
else {
// check the early exit search group first
status[0] = status[0] || (0, anymatch_1.default)(exhaustiveSearchGroup, path);
if (status[0]) {
return true; // exit
}
// check the exhaustive search group
status[1] = status[1] || (0, anymatch_1.default)(exhaustiveSearchGroup, path);
}
}
return false; // continue
}