@@ -141,14 +141,14 @@ let takeUntil = (array: string[], startsWith: string): string[] => {
141
141
return res ;
142
142
} ;
143
143
144
- export let findCodeActionsInDiagnosticsMessage = ( {
144
+ export let findCodeActionsInDiagnosticsMessage = async ( {
145
145
diagnostic,
146
146
diagnosticMessage,
147
147
file,
148
148
range,
149
149
addFoundActionsHere : codeActions ,
150
150
} : findCodeActionsConfig ) => {
151
- diagnosticMessage . forEach ( ( line , index , array ) => {
151
+ for ( const [ index , line ] of diagnosticMessage . entries ( ) ) {
152
152
// Because of how actions work, there can only be one per diagnostic. So,
153
153
// halt whenever a code action has been found.
154
154
let codeActionExtractors = [
@@ -166,8 +166,8 @@ export let findCodeActionsInDiagnosticsMessage = ({
166
166
let didFindAction = false ;
167
167
168
168
try {
169
- didFindAction = extractCodeAction ( {
170
- array,
169
+ didFindAction = await extractCodeAction ( {
170
+ array : diagnosticMessage ,
171
171
codeActions,
172
172
diagnostic,
173
173
file,
@@ -183,7 +183,7 @@ export let findCodeActionsInDiagnosticsMessage = ({
183
183
break ;
184
184
}
185
185
}
186
- } ) ;
186
+ }
187
187
} ;
188
188
189
189
interface codeActionExtractorConfig {
@@ -196,12 +196,12 @@ interface codeActionExtractorConfig {
196
196
codeActions : filesCodeActions ;
197
197
}
198
198
199
- type codeActionExtractor = ( config : codeActionExtractorConfig ) => boolean ;
199
+ type codeActionExtractor = ( config : codeActionExtractorConfig ) => Promise < boolean > ;
200
200
201
201
// This action extracts hints the compiler emits for misspelled identifiers, and
202
202
// offers to replace the misspelled name with the correct name suggested by the
203
203
// compiler.
204
- let didYouMeanAction : codeActionExtractor = ( {
204
+ let didYouMeanAction : codeActionExtractor = async ( {
205
205
codeActions,
206
206
diagnostic,
207
207
file,
@@ -245,7 +245,7 @@ let didYouMeanAction: codeActionExtractor = ({
245
245
} ;
246
246
247
247
// This action offers to wrap patterns that aren't option in Some.
248
- let wrapInSome : codeActionExtractor = ( {
248
+ let wrapInSome : codeActionExtractor = async ( {
249
249
codeActions,
250
250
diagnostic,
251
251
file,
@@ -425,7 +425,7 @@ let handleUndefinedRecordFieldsAction = ({
425
425
// being undefined. We then offers an action that inserts all of the record
426
426
// fields, with an `assert false` dummy value. `assert false` is so applying the
427
427
// code action actually compiles.
428
- let addUndefinedRecordFieldsV10 : codeActionExtractor = ( {
428
+ let addUndefinedRecordFieldsV10 : codeActionExtractor = async ( {
429
429
array,
430
430
codeActions,
431
431
diagnostic,
@@ -459,7 +459,7 @@ let addUndefinedRecordFieldsV10: codeActionExtractor = ({
459
459
return false ;
460
460
} ;
461
461
462
- let addUndefinedRecordFieldsV11 : codeActionExtractor = ( {
462
+ let addUndefinedRecordFieldsV11 : codeActionExtractor = async ( {
463
463
array,
464
464
codeActions,
465
465
diagnostic,
@@ -508,7 +508,7 @@ let addUndefinedRecordFieldsV11: codeActionExtractor = ({
508
508
509
509
// This action detects suggestions of converting between mismatches in types
510
510
// that the compiler tells us about.
511
- let simpleConversion : codeActionExtractor = ( {
511
+ let simpleConversion : codeActionExtractor = async ( {
512
512
line,
513
513
codeActions,
514
514
file,
@@ -554,7 +554,7 @@ let simpleConversion: codeActionExtractor = ({
554
554
555
555
// This action will apply a curried function (essentially inserting a dot in the
556
556
// correct place).
557
- let applyUncurried : codeActionExtractor = ( {
557
+ let applyUncurried : codeActionExtractor = async ( {
558
558
line,
559
559
codeActions,
560
560
file,
@@ -608,7 +608,7 @@ let applyUncurried: codeActionExtractor = ({
608
608
609
609
// This action detects missing cases for exhaustive pattern matches, and offers
610
610
// to insert dummy branches (using `failwith("TODO")`) for those branches.
611
- let simpleAddMissingCases : codeActionExtractor = ( {
611
+ let simpleAddMissingCases : codeActionExtractor = async ( {
612
612
line,
613
613
codeActions,
614
614
file,
@@ -629,7 +629,7 @@ let simpleAddMissingCases: codeActionExtractor = ({
629
629
630
630
let filePath = fileURLToPath ( file ) ;
631
631
632
- let newSwitchCode = utils . runAnalysisAfterSanityCheck ( filePath , [
632
+ let newSwitchCode = await utils . runAnalysisAfterSanityCheck ( filePath , [
633
633
"codemod" ,
634
634
filePath ,
635
635
range . start . line ,
@@ -665,7 +665,7 @@ let simpleAddMissingCases: codeActionExtractor = ({
665
665
// This detects concrete variables or values put in a position which expects an
666
666
// optional of that same type, and offers to wrap the value/variable in
667
667
// `Some()`.
668
- let simpleTypeMismatches : codeActionExtractor = ( {
668
+ let simpleTypeMismatches : codeActionExtractor = async ( {
669
669
line,
670
670
codeActions,
671
671
file,
0 commit comments