For import fix, for "foo/index" module, use "foo" as default export name, not "index" (#22651)
This commit is contained in:
parent
3b6ae8536f
commit
adf3635a1f
2 changed files with 17 additions and 4 deletions
|
@ -802,21 +802,22 @@ namespace ts.codefix {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function moduleSymbolToValidIdentifier(moduleSymbol: Symbol, target: ScriptTarget): string {
|
export function moduleSymbolToValidIdentifier(moduleSymbol: Symbol, target: ScriptTarget): string {
|
||||||
return moduleSpecifierToValidIdentifier(removeFileExtension(getBaseFileName(moduleSymbol.name)), target);
|
return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function moduleSpecifierToValidIdentifier(moduleSpecifier: string, target: ScriptTarget): string {
|
export function moduleSpecifierToValidIdentifier(moduleSpecifier: string, target: ScriptTarget): string {
|
||||||
|
const baseName = getBaseFileName(removeSuffix(moduleSpecifier, "/index"));
|
||||||
let res = "";
|
let res = "";
|
||||||
let lastCharWasValid = true;
|
let lastCharWasValid = true;
|
||||||
const firstCharCode = moduleSpecifier.charCodeAt(0);
|
const firstCharCode = baseName.charCodeAt(0);
|
||||||
if (isIdentifierStart(firstCharCode, target)) {
|
if (isIdentifierStart(firstCharCode, target)) {
|
||||||
res += String.fromCharCode(firstCharCode);
|
res += String.fromCharCode(firstCharCode);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
lastCharWasValid = false;
|
lastCharWasValid = false;
|
||||||
}
|
}
|
||||||
for (let i = 1; i < moduleSpecifier.length; i++) {
|
for (let i = 1; i < baseName.length; i++) {
|
||||||
const ch = moduleSpecifier.charCodeAt(i);
|
const ch = baseName.charCodeAt(i);
|
||||||
const isValid = isIdentifierPart(ch, target);
|
const isValid = isIdentifierPart(ch, target);
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
let char = String.fromCharCode(ch);
|
let char = String.fromCharCode(ch);
|
||||||
|
|
12
tests/cases/fourslash/importNameCodeFixDefaultExport3.ts
Normal file
12
tests/cases/fourslash/importNameCodeFixDefaultExport3.ts
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
/// <reference path="fourslash.ts" />
|
||||||
|
|
||||||
|
// @Filename: /foo-bar/index.ts
|
||||||
|
////export default 0;
|
||||||
|
|
||||||
|
// @Filename: /b.ts
|
||||||
|
////[|foo/**/Bar|]
|
||||||
|
|
||||||
|
goTo.file("/b.ts");
|
||||||
|
verify.importFixAtPosition([`import fooBar from "./foo-bar";
|
||||||
|
|
||||||
|
fooBar`]);
|
Loading…
Reference in a new issue