@@ -6,7 +6,7 @@ export function doTransform({
66 ast,
77 filePath,
88 mappings,
9- options
9+ options,
1010} : {
1111 api : any
1212 ast : any
@@ -20,16 +20,40 @@ export function doTransform({
2020 const { namespaceChanges } = mappings
2121 const j = api . jscodeshift
2222
23- const lastSegmentSet = new Set ( )
24- const nameMap = new Map ( )
25- for ( const [ key , value ] of Object . entries ( namespaceChanges ) ) {
26- nameMap . set ( key , value )
27- lastSegmentSet . add ( key . split ( '.' ) . pop ( ) )
23+ const fqnNameMap = new Map ( )
24+ const nonFqnNameMap = new Map ( )
25+ for ( const [ key , value ] of Object . entries ( namespaceChanges ) as [ string , string ] [ ] ) {
26+ fqnNameMap . set ( key , value )
27+ const nonFqnKey = key . split ( '.' ) . pop ( )
28+ const nonFqnValue = value . split ( '.' ) . pop ( )
29+ nonFqnNameMap . set ( nonFqnKey , nonFqnValue )
2830 }
2931
32+ ast
33+ . find ( j . Identifier , {
34+ name : n => nonFqnNameMap . has ( n ) ,
35+ } )
36+ . replaceWith ( path => {
37+ if ( path . parentPath && j . MemberExpression . check ( path . parentPath . value ) ) {
38+ return path . value
39+ }
40+ const oldName = path . value . name
41+ const newName = nonFqnNameMap . get ( oldName )
42+ if ( incremental ) {
43+ logMigrationMessage (
44+ filePath ,
45+ path . value ,
46+ createLogMessage `The type '${ oldName } ' has been renamed to '${ newName } '.` ,
47+ findCommentParent ( path )
48+ )
49+ return path . value
50+ }
51+ return j . identifier ( newName )
52+ } )
53+
3054 ast
3155 . find ( j . MemberExpression , {
32- property : { type : 'Identifier' , name : n => lastSegmentSet . has ( n ) }
56+ property : { type : 'Identifier' , name : n => nonFqnNameMap . has ( n ) } ,
3357 } )
3458 . replaceWith ( path => {
3559 const fqnParts = [ path . value . property . name ]
@@ -40,8 +64,8 @@ export function doTransform({
4064 }
4165 fqnParts . unshift ( current . object . name )
4266 const fqn = fqnParts . join ( '.' )
43- if ( nameMap . has ( fqn ) ) {
44- const newName = nameMap . get ( fqn )
67+ if ( fqnNameMap . has ( fqn ) ) {
68+ const newName = fqnNameMap . get ( fqn )
4569 if ( incremental ) {
4670 logMigrationMessage (
4771 filePath ,
0 commit comments