Skip to content

Commit

Permalink
Fix include/exclude CLI argument overrides
Browse files Browse the repository at this point in the history
  • Loading branch information
webpro committed Oct 21, 2022
1 parent 2ae97ec commit db4ebdc
Showing 1 changed file with 15 additions and 11 deletions.
26 changes: 15 additions & 11 deletions src/util/config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import micromatch from 'micromatch';
import type { ImportedConfiguration, LocalConfiguration, Configuration, IssueType } from '../types';
import type { ImportedConfiguration, LocalConfiguration, Configuration, IssueType, Report } from '../types';

export const resolveConfig = (
importedConfiguration: ImportedConfiguration,
Expand Down Expand Up @@ -41,14 +41,18 @@ export const resolveIncludedIssueTypes = (
// Automatically inject the devDependencies report type in dev mode
const deps: IssueType[] = resolvedConfig?.dev ? ['dependencies', 'devDependencies'] : ['dependencies'];
const groups: IssueType[] = ['files', ...deps, 'unlisted', 'exports', 'types', 'nsExports', 'nsTypes', 'duplicates'];
const include = [includeArg, resolvedConfig?.include ?? []]
.flat()
.map(value => value.split(','))
.flat();
const exclude = [excludeArg, resolvedConfig?.exclude ?? []]
.flat()
.map(value => value.split(','))
.flat();
const includes = (include.length > 0 ? include : groups).filter(group => !exclude.includes(group));
return groups.reduce((r, group) => ((r[group] = includes.includes(group)), r), {} as Configuration['report']);

// Allow space-separated argument values (--include files,dependencies)
const normalizedIncludesArg = includeArg.map(value => value.split(',')).flat();
const normalizedExcludesArg = excludeArg.map(value => value.split(',')).flat();

// CLI arguments override local options
const excludes = (resolvedConfig?.exclude ?? []).filter(exclude => !normalizedIncludesArg.includes(exclude));
const includes = (resolvedConfig?.include ?? []).filter(include => !normalizedExcludesArg.includes(include));

const include = [normalizedIncludesArg, includes].flat();
const exclude = [normalizedExcludesArg, excludes].flat();
const included = (include.length > 0 ? include : groups).filter(group => !exclude.includes(group));

return groups.reduce((types, group) => ((types[group] = included.includes(group)), types), {} as Report);
};

0 comments on commit db4ebdc

Please sign in to comment.