@@ -13,7 +13,6 @@ import { findUp } from "find-up";
1313export interface Test {
1414 dir : string | undefined ;
1515 config : string | undefined ;
16- project : string ;
1716}
1817
1918/**
@@ -23,8 +22,10 @@ export interface Config {
2322 debug : boolean ;
2423 dir : string ;
2524 src : string [ ] ;
25+ ignore : string [ ] ;
2626 dist : string [ ] ;
2727 project : string [ ] ;
28+ checkProject : string [ ] ;
2829 test : Test [ ] ;
2930}
3031
@@ -235,7 +236,12 @@ export async function lint(argv: string[], config: Config) {
235236 const eslintPaths = getEslintPaths ( paths , filterPaths , config ) ;
236237 await run (
237238 await PATHS . eslint ( ) ,
238- args ( ! check && "--fix" , [ "--config" , getEslintConfig ( ) ] , eslintPaths ) ,
239+ args (
240+ ! check && "--fix" ,
241+ [ "--config" , getEslintConfig ( ) ] ,
242+ config . ignore . flatMap ( ( ignore ) => [ "--ignore-pattern" , ignore ] ) ,
243+ eslintPaths
244+ ) ,
239245 {
240246 name : "eslint" ,
241247 config,
@@ -251,7 +257,7 @@ export async function check(argv: string[], config: Config) {
251257 await format ( [ "--check" ] , config ) ;
252258
253259 // Type check with typescript.
254- for ( const { project } of config . test ) {
260+ for ( const project of config . checkProject ) {
255261 await run ( await PATHS . typescript ( ) , [ "--noEmit" , "--project" , project ] , {
256262 name : `tsc --noEmit --project ${ project } ` ,
257263 config,
@@ -362,6 +368,10 @@ export async function format(argv: string[], config: Config) {
362368 }
363369 }
364370
371+ for ( const ignore of config . ignore ) {
372+ paths . push ( `!${ ignore } ` ) ;
373+ }
374+
365375 const [ prettierPath , prettierPluginPackage ] = await Promise . all ( [
366376 PATHS . prettier ( ) ,
367377 PATHS . prettierPluginPackage ( ) ,
@@ -436,6 +446,7 @@ const arrayify = <T>(value: T | T[]) => {
436446const configSchema = object ( {
437447 debug : boolean ( ) . optional ( ) ,
438448 src : arrayifySchema ( string ( ) ) . optional ( ) ,
449+ ignore : arrayifySchema ( string ( ) ) . optional ( ) ,
439450 dist : arrayifySchema ( string ( ) ) . optional ( ) ,
440451 project : arrayifySchema ( string ( ) ) . optional ( ) ,
441452 test : arrayifySchema (
@@ -458,12 +469,13 @@ export async function getConfig(cwd: string): Promise<Config> {
458469 debug : schema . debug ?? false ,
459470 dir : dirname ( packageJsonPath ( config ) ?? cwd ) ,
460471 src : arrayify ( schema . src ?? "src" ) ,
472+ ignore : arrayify ( schema . ignore ?? [ ] ) ,
461473 dist : arrayify ( schema . dist ?? "dist" ) ,
462474 project : arrayify ( schema . project ?? "tsconfig.json" ) ,
475+ checkProject : arrayify ( schema . project ?? "tsconfig.json" ) ,
463476 test : arrayify ( schema . test ?? { } ) . map ( ( testSchema ) => ( {
464477 dir : testSchema . dir ,
465478 config : testSchema . config ,
466- project : testSchema . project ?? "tsconfig.json" ,
467479 } ) ) ,
468480 } ;
469481}
0 commit comments