Insert async keyword as last modifier (#27491)
This commit is contained in:
parent
70e26fc701
commit
f356cd6c89
|
@ -68,7 +68,7 @@ namespace ts.codefix {
|
|||
}
|
||||
|
||||
// add the async keyword
|
||||
changes.insertModifierBefore(sourceFile, SyntaxKind.AsyncKeyword, functionToConvert);
|
||||
changes.insertLastModifierBefore(sourceFile, SyntaxKind.AsyncKeyword, functionToConvert);
|
||||
|
||||
function startTransformation(node: CallExpression, nodeToReplace: Node) {
|
||||
const newNodes = transformExpression(node, transformer, node);
|
||||
|
|
|
@ -315,6 +315,16 @@ namespace ts.textChanges {
|
|||
this.replaceRange(sourceFile, { pos, end: pos }, createToken(modifier), { suffix: " " });
|
||||
}
|
||||
|
||||
public insertLastModifierBefore(sourceFile: SourceFile, modifier: SyntaxKind, before: Node): void {
|
||||
if (!before.modifiers) {
|
||||
this.insertModifierBefore(sourceFile, modifier, before);
|
||||
return;
|
||||
}
|
||||
|
||||
const pos = before.modifiers.end;
|
||||
this.replaceRange(sourceFile, { pos, end: pos }, createToken(modifier), { prefix: " " });
|
||||
}
|
||||
|
||||
public insertCommentBeforeLine(sourceFile: SourceFile, lineNumber: number, position: number, commentText: string): void {
|
||||
const lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile);
|
||||
const startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);
|
||||
|
|
|
@ -1254,6 +1254,11 @@ function [#|main2|]() {
|
|||
.then(() => { console.log("."); return delay(500); })
|
||||
.then(() => { console.log("."); return delay(500); })
|
||||
}
|
||||
`);
|
||||
_testConvertToAsyncFunction("convertToAsyncFunction_exportModifier", `
|
||||
export function [#|foo|]() {
|
||||
return fetch('https://typescriptlang.org').then(s => console.log(s));
|
||||
}
|
||||
`);
|
||||
});
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
// ==ORIGINAL==
|
||||
|
||||
export function /*[#|*/foo/*|]*/() {
|
||||
return fetch('https://typescriptlang.org').then(s => console.log(s));
|
||||
}
|
||||
|
||||
// ==ASYNC FUNCTION::Convert to async function==
|
||||
|
||||
export async function foo() {
|
||||
const s = await fetch('https://typescriptlang.org');
|
||||
return console.log(s);
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
// ==ORIGINAL==
|
||||
|
||||
export function /*[#|*/foo/*|]*/() {
|
||||
return fetch('https://typescriptlang.org').then(s => console.log(s));
|
||||
}
|
||||
|
||||
// ==ASYNC FUNCTION::Convert to async function==
|
||||
|
||||
export async function foo() {
|
||||
const s = await fetch('https://typescriptlang.org');
|
||||
return console.log(s);
|
||||
}
|
Loading…
Reference in a new issue