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
|
// add the async keyword
|
||||||
changes.insertModifierBefore(sourceFile, SyntaxKind.AsyncKeyword, functionToConvert);
|
changes.insertLastModifierBefore(sourceFile, SyntaxKind.AsyncKeyword, functionToConvert);
|
||||||
|
|
||||||
function startTransformation(node: CallExpression, nodeToReplace: Node) {
|
function startTransformation(node: CallExpression, nodeToReplace: Node) {
|
||||||
const newNodes = transformExpression(node, transformer, node);
|
const newNodes = transformExpression(node, transformer, node);
|
||||||
|
|
|
@ -315,6 +315,16 @@ namespace ts.textChanges {
|
||||||
this.replaceRange(sourceFile, { pos, end: pos }, createToken(modifier), { suffix: " " });
|
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 {
|
public insertCommentBeforeLine(sourceFile: SourceFile, lineNumber: number, position: number, commentText: string): void {
|
||||||
const lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile);
|
const lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile);
|
||||||
const startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);
|
const startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);
|
||||||
|
|
|
@ -1254,6 +1254,11 @@ function [#|main2|]() {
|
||||||
.then(() => { console.log("."); return delay(500); })
|
.then(() => { console.log("."); return delay(500); })
|
||||||
.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