@@ -166,38 +166,35 @@ namespace ts.refactor {
166
166
}
167
167
168
168
function changeNamedToDefaultImport ( importingSourceFile : SourceFile , ref : Identifier , changes : textChanges . ChangeTracker ) : void {
169
- const { parent } = ref ;
169
+ const parent = ref . parent as PropertyAccessExpression | ImportSpecifier | ExportSpecifier ;
170
170
switch ( parent . kind ) {
171
171
case SyntaxKind . PropertyAccessExpression :
172
172
// `a.foo` --> `a.default`
173
173
changes . replaceNode ( importingSourceFile , ref , createIdentifier ( "default" ) ) ;
174
174
break ;
175
- case SyntaxKind . ImportSpecifier :
176
- case SyntaxKind . ExportSpecifier : {
177
- const spec = parent as ImportSpecifier | ExportSpecifier ;
178
- if ( spec . kind === SyntaxKind . ImportSpecifier ) {
179
- // `import { foo } from "./a";` --> `import foo from "./a";`
180
- // `import { foo as bar } from "./a";` --> `import bar from "./a";`
181
- const defaultImport = createIdentifier ( spec . name . text ) ;
182
- if ( spec . parent . elements . length === 1 ) {
183
- changes . replaceNode ( importingSourceFile , spec . parent , defaultImport ) ;
184
- }
185
- else {
186
- changes . delete ( importingSourceFile , spec ) ;
187
- changes . insertNodeBefore ( importingSourceFile , spec . parent , defaultImport ) ;
188
- }
175
+ case SyntaxKind . ImportSpecifier : {
176
+ // `import { foo } from "./a";` --> `import foo from "./a";`
177
+ // `import { foo as bar } from "./a";` --> `import bar from "./a";`
178
+ const defaultImport = createIdentifier ( parent . name . text ) ;
179
+ if ( parent . parent . elements . length === 1 ) {
180
+ changes . replaceNode ( importingSourceFile , parent . parent , defaultImport ) ;
189
181
}
190
182
else {
191
- // `export { foo } from "./a";` --> `export { default as foo } from "./a";`
192
- // `export { foo as bar } from "./a";` --> `export { default as bar } from "./a";`
193
- // `export { foo as default } from "./a";` --> `export { default } from "./a";`
194
- // (Because `export foo from "./a";` isn't valid syntax.)
195
- changes . replaceNode ( importingSourceFile , spec , makeExportSpecifier ( "default" , spec . name . text ) ) ;
183
+ changes . delete ( importingSourceFile , parent ) ;
184
+ changes . insertNodeBefore ( importingSourceFile , parent . parent , defaultImport ) ;
196
185
}
197
186
break ;
198
187
}
188
+ case SyntaxKind . ExportSpecifier : {
189
+ // `export { foo } from "./a";` --> `export { default as foo } from "./a";`
190
+ // `export { foo as bar } from "./a";` --> `export { default as bar } from "./a";`
191
+ // `export { foo as default } from "./a";` --> `export { default } from "./a";`
192
+ // (Because `export foo from "./a";` isn't valid syntax.)
193
+ changes . replaceNode ( importingSourceFile , parent , makeExportSpecifier ( "default" , parent . name . text ) ) ;
194
+ break ;
195
+ }
199
196
default :
200
- Debug . failBadSyntaxKind ( parent ) ;
197
+ Debug . assertNever ( parent ) ;
201
198
}
202
199
203
200
}
0 commit comments