@@ -74,6 +74,7 @@ if (process.argv.includes('--threads')) {
7474
7575 let projects : Project [ ] = [ ] ;
7676 let spinner = clack . spinner ( ) ;
77+ let lastSpinnerUpdate = Date . now ( ) ;
7778 let hasFix = false ;
7879 let allFilesNum = 0 ;
7980 let processed = 0 ;
@@ -139,9 +140,13 @@ if (process.argv.includes('--threads')) {
139140 process . exit ( 1 ) ;
140141 }
141142
142- await Promise . all ( new Array ( threads ) . fill ( 0 ) . map ( ( ) => {
143- return startWorker ( ) ;
144- } ) ) ;
143+ if ( threads === 1 ) {
144+ await startWorker ( worker . createLocal ( ) as any ) ;
145+ } else {
146+ await Promise . all ( new Array ( threads ) . fill ( 0 ) . map ( ( ) => {
147+ return startWorker ( worker . create ( ) ) ;
148+ } ) ) ;
149+ }
145150
146151 spinner . stop (
147152 darkGray (
@@ -172,7 +177,7 @@ if (process.argv.includes('--threads')) {
172177 clack . outro ( summary ) ;
173178 process . exit ( errors ? 1 : 0 ) ;
174179
175- async function startWorker ( linterWorker = worker . create ( ) ) {
180+ async function startWorker ( linterWorker : ReturnType < typeof worker . create > ) {
176181 const unfinishedProjects = projects . filter ( project => project . currentFileIndex < project . fileNames . length ) ;
177182 if ( ! unfinishedProjects . length ) {
178183 return ;
@@ -209,6 +214,11 @@ if (process.argv.includes('--threads')) {
209214
210215 addProcessFile ( fileName ) ;
211216
217+ if ( Date . now ( ) - lastSpinnerUpdate > 100 ) {
218+ lastSpinnerUpdate = Date . now ( ) ;
219+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
220+ }
221+
212222 let fileCache = project . cache [ fileName ] ;
213223 if ( fileCache ) {
214224 if ( fileCache [ 0 ] !== fileMtime ) {
0 commit comments