fix(rule): allow leading directories in rule path glob
This commit is contained in:
parent
5609dfb4c6
commit
00c7b89f93
|
@ -3,7 +3,6 @@ import { applyDiff, diff } from 'deep-diff';
|
|||
import { cloneDeep, Dictionary, intersection, isNil } from 'lodash';
|
||||
import { Minimatch } from 'minimatch';
|
||||
import { LogLevel } from 'noicejs';
|
||||
import { join } from 'path';
|
||||
import recursive from 'recursive-readdir';
|
||||
|
||||
import { YamlParser } from '../parser/YamlParser';
|
||||
|
@ -121,17 +120,19 @@ export async function loadRuleFiles(paths: Array<string>, ctx: VisitorContext):
|
|||
}
|
||||
|
||||
export async function loadRulePaths(paths: Array<string>, ctx: VisitorContext): Promise<Array<Rule>> {
|
||||
const match = new Minimatch('*.+(json|yaml|yml)');
|
||||
const match = new Minimatch('**/*.+(json|yaml|yml)', {
|
||||
nocase: true,
|
||||
});
|
||||
const rules = [];
|
||||
|
||||
for (const path of paths) {
|
||||
const allFiles = await recursive(path);
|
||||
ctx.logger.debug({ files: allFiles }, 'path matched files');
|
||||
// skip files that start with `.`, limit to json and yaml/yml
|
||||
const files = allFiles
|
||||
.filter((name) => name[0] !== '.')
|
||||
.filter((name) => match.match(name.toLowerCase()))
|
||||
.map((name) => join(path, name));
|
||||
.filter((name) => match.match(name));
|
||||
|
||||
ctx.logger.debug({ allFiles, files }, 'path matched files');
|
||||
|
||||
const pathRules = await loadRuleFiles(files, ctx);
|
||||
rules.push(...pathRules);
|
||||
|
|
Loading…
Reference in New Issue