@@ -74,6 +74,7 @@ if (process.argv.includes('--threads')) {
74
74
75
75
let projects : Project [ ] = [ ] ;
76
76
let spinner = clack . spinner ( ) ;
77
+ let lastSpinnerUpdate = Date . now ( ) ;
77
78
let hasFix = false ;
78
79
let allFilesNum = 0 ;
79
80
let processed = 0 ;
@@ -139,9 +140,13 @@ if (process.argv.includes('--threads')) {
139
140
process . exit ( 1 ) ;
140
141
}
141
142
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
+ }
145
150
146
151
spinner . stop (
147
152
darkGray (
@@ -172,7 +177,7 @@ if (process.argv.includes('--threads')) {
172
177
clack . outro ( summary ) ;
173
178
process . exit ( errors ? 1 : 0 ) ;
174
179
175
- async function startWorker ( linterWorker = worker . create ( ) ) {
180
+ async function startWorker ( linterWorker : ReturnType < typeof worker . create > ) {
176
181
const unfinishedProjects = projects . filter ( project => project . currentFileIndex < project . fileNames . length ) ;
177
182
if ( ! unfinishedProjects . length ) {
178
183
return ;
@@ -209,6 +214,11 @@ if (process.argv.includes('--threads')) {
209
214
210
215
addProcessFile ( fileName ) ;
211
216
217
+ if ( Date . now ( ) - lastSpinnerUpdate > 100 ) {
218
+ lastSpinnerUpdate = Date . now ( ) ;
219
+ await new Promise ( resolve => setTimeout ( resolve , 0 ) ) ;
220
+ }
221
+
212
222
let fileCache = project . cache [ fileName ] ;
213
223
if ( fileCache ) {
214
224
if ( fileCache [ 0 ] !== fileMtime ) {
0 commit comments