1
1
import { Collection , JSCodeshift } from "jscodeshift" ;
2
2
3
3
import { getV3ClientDefaultLocalName } from "../utils" ;
4
+ import { addV3ClientDefaultImportEquals } from "./addV3ClientDefaultImportEquals" ;
4
5
import { getImportEqualsDeclaration } from "./getImportEqualsDeclaration" ;
5
6
import { getV3ClientRequireProperty } from "./getV3ClientRequireProperty" ;
6
7
import { V3ClientModulesOptions , V3ClientRequirePropertyOptions } from "./types" ;
7
8
8
9
export const addV3ClientNamedImportEquals = (
9
10
j : JSCodeshift ,
10
11
source : Collection < unknown > ,
11
- {
12
- keyName,
13
- valueName,
14
- v2ClientLocalName,
15
- v3ClientPackageName,
16
- } : V3ClientModulesOptions & V3ClientRequirePropertyOptions
12
+ options : V3ClientModulesOptions & V3ClientRequirePropertyOptions
17
13
) => {
14
+ const { keyName, valueName, ...v3ClientModulesOptions } = options ;
15
+ const { v2ClientLocalName, v3ClientPackageName } = v3ClientModulesOptions ;
16
+
18
17
const v3ClientDefaultLocalName = getV3ClientDefaultLocalName ( v2ClientLocalName ) ;
19
18
const namedImportObjectProperty = getV3ClientRequireProperty ( j , { keyName, valueName } ) ;
20
19
@@ -28,10 +27,10 @@ export const addV3ClientNamedImportEquals = (
28
27
return ;
29
28
}
30
29
31
- const existingImportEquals = source . find (
32
- j . TSImportEqualsDeclaration ,
33
- getImportEqualsDeclaration ( v3ClientPackageName )
34
- ) ;
30
+ const importEqualsDeclaration = getImportEqualsDeclaration ( v3ClientPackageName ) ;
31
+ if ( source . find ( j . TSImportEqualsDeclaration , importEqualsDeclaration ) . size ( ) === 0 ) {
32
+ addV3ClientDefaultImportEquals ( j , source , v3ClientModulesOptions ) ;
33
+ }
35
34
36
35
const varDeclaration = j . variableDeclaration ( "const" , [
37
36
j . variableDeclarator (
@@ -40,16 +39,16 @@ export const addV3ClientNamedImportEquals = (
40
39
) ,
41
40
] ) ;
42
41
43
- if ( existingImportEquals . size ( ) ) {
44
- const v3ClientImportEquals = existingImportEquals . filter (
42
+ const v3ClientImportEquals = source
43
+ . find ( j . TSImportEqualsDeclaration , importEqualsDeclaration )
44
+ . filter (
45
45
( importEqualsDeclaration ) =>
46
46
importEqualsDeclaration . value . id . name === v3ClientDefaultLocalName
47
47
) ;
48
48
49
- if ( v3ClientImportEquals . size ( ) > 0 ) {
50
- v3ClientImportEquals . at ( 0 ) . insertAfter ( varDeclaration ) ;
51
- return ;
52
- }
49
+ if ( v3ClientImportEquals . size ( ) > 0 ) {
50
+ v3ClientImportEquals . at ( 0 ) . insertAfter ( varDeclaration ) ;
51
+ return ;
53
52
}
54
53
55
54
// Unreachable code, throw error
0 commit comments