Skip to content

Commit d180fe5

Browse files
authored
Use utility getImportSpecifiers in modules (#306)
1 parent 4947b8c commit d180fe5

File tree

6 files changed

+27
-40
lines changed

6 files changed

+27
-40
lines changed

src/transforms/v2-to-v3/client-names/getV2ClientNamesRecordFromImport.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import { Collection, Identifier, ImportSpecifier, JSCodeshift } from "jscodeshif
22

33
import { CLIENT_NAMES, PACKAGE_NAME } from "../config";
44
import { getImportEqualsDeclaration } from "../modules";
5+
import { getImportSpecifiers } from "../modules";
56
import { getV2ServiceModulePath } from "../utils";
6-
import { getImportSpecifiers } from "./getImportSpecifiers";
77

88
export const getV2ClientNamesRecordFromImport = (
99
j: JSCodeshift,

src/transforms/v2-to-v3/modules/addV3ClientDefaultImport.ts

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Collection, ImportDefaultSpecifier, JSCodeshift } from "jscodeshift";
22

33
import { getV3ClientDefaultLocalName } from "../utils";
4+
import { getImportSpecifiers } from "./getImportSpecifiers";
45
import { getV2ImportDeclaration } from "./getV2ImportDeclaration";
56
import { V3ClientModulesOptions } from "./types";
67

@@ -11,23 +12,18 @@ export const addV3ClientDefaultImport = (
1112
) => {
1213
const localName = getV3ClientDefaultLocalName(v2ClientLocalName);
1314
const defaultImportSpecifier = j.importDefaultSpecifier(j.identifier(localName));
14-
const existingImports = source.find(j.ImportDeclaration, {
15+
16+
const importDeclarations = source.find(j.ImportDeclaration, {
1517
source: { value: v3ClientPackageName },
1618
});
1719

18-
const existingImportDefaultSpecifiers = existingImports
19-
.nodes()
20-
.map((importDeclaration) => importDeclaration.specifiers)
21-
.flat()
22-
.filter(
23-
(importSpecifier) => importSpecifier?.type === "ImportDefaultSpecifier"
24-
) as ImportDefaultSpecifier[];
25-
26-
if (existingImports.length) {
27-
if (
28-
!existingImportDefaultSpecifiers.find((specifier) => specifier?.local?.name === localName)
29-
) {
30-
existingImports.nodes()[0].specifiers?.push(defaultImportSpecifier);
20+
const importDefaultSpecifiers = getImportSpecifiers(j, source, v3ClientPackageName).filter(
21+
(importSpecifier) => importSpecifier?.type === "ImportDefaultSpecifier"
22+
) as ImportDefaultSpecifier[];
23+
24+
if (importDeclarations.length) {
25+
if (!importDefaultSpecifiers.find((specifier) => specifier?.local?.name === localName)) {
26+
importDeclarations.nodes()[0].specifiers?.push(defaultImportSpecifier);
3127
return;
3228
}
3329
}

src/transforms/v2-to-v3/modules/addV3ClientNamedImport.ts

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Collection, ImportSpecifier, JSCodeshift } from "jscodeshift";
22

3+
import { getImportSpecifiers } from "./getImportSpecifiers";
34
import { getV2ImportDeclaration } from "./getV2ImportDeclaration";
45
import { getV3ClientImportSpecifier } from "./getV3ClientImportSpecifier";
56
import { V3ClientModulesOptions } from "./types";
@@ -9,29 +10,25 @@ export const addV3ClientNamedImport = (
910
source: Collection<unknown>,
1011
{ v2ClientName, v2ClientLocalName, v3ClientPackageName, v3ClientName }: V3ClientModulesOptions
1112
) => {
12-
const existingImports = source.find(j.ImportDeclaration, {
13+
const importDeclarations = source.find(j.ImportDeclaration, {
1314
source: { value: v3ClientPackageName },
1415
});
1516

16-
if (existingImports.size()) {
17-
const existingImportSpecifiers = existingImports
18-
.nodes()
19-
.map((importDeclaration) => importDeclaration.specifiers)
20-
.flat()
21-
.filter(
22-
(importSpecifier) => importSpecifier?.type === "ImportSpecifier"
23-
) as ImportSpecifier[];
17+
if (importDeclarations.size()) {
18+
const importSpecifiers = getImportSpecifiers(j, source, v3ClientPackageName).filter(
19+
(importSpecifier) => importSpecifier?.type === "ImportSpecifier"
20+
) as ImportSpecifier[];
2421

2522
if (
26-
existingImportSpecifiers.find(
23+
importSpecifiers.find(
2724
(specifier) =>
2825
specifier?.imported?.name === v3ClientName && specifier?.local?.name === v2ClientLocalName
2926
)
3027
) {
3128
return;
3229
}
3330

34-
existingImports
31+
importDeclarations
3532
.nodes()[0]
3633
.specifiers?.push(
3734
getV3ClientImportSpecifier(j, { localName: v2ClientLocalName, importedName: v3ClientName })

src/transforms/v2-to-v3/modules/getV2GlobalNameFromModule.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { Collection, Identifier, JSCodeshift } from "jscodeshift";
22

33
import { PACKAGE_NAME } from "../config";
44
import { getImportEqualsDeclaration } from "./getImportEqualsDeclaration";
5+
import { getImportSpecifiers } from "./getImportSpecifiers";
56
import { hasRequire } from "./hasRequire";
67

78
export const getV2GlobalNameFromModule = (
@@ -25,20 +26,12 @@ export const getV2GlobalNameFromModule = (
2526
}
2627
}
2728

28-
const importDefaultNamespaceSpecifiers = source
29-
.find(j.ImportDeclaration, {
30-
type: "ImportDeclaration",
31-
source: { value: PACKAGE_NAME },
32-
})
33-
.nodes()
34-
.map((importDeclaration) => importDeclaration.specifiers)
35-
.flat()
36-
.filter((specifier) =>
37-
["ImportDefaultSpecifier", "ImportNamespaceSpecifier"].includes(specifier?.type as string)
38-
);
39-
40-
if (importDefaultNamespaceSpecifiers.length > 0) {
41-
return (importDefaultNamespaceSpecifiers[0]?.local as Identifier).name;
29+
const importDefaultSpecifiers = getImportSpecifiers(j, source, PACKAGE_NAME).filter((specifier) =>
30+
["ImportDefaultSpecifier", "ImportNamespaceSpecifier"].includes(specifier?.type as string)
31+
);
32+
33+
if (importDefaultSpecifiers.length > 0) {
34+
return (importDefaultSpecifiers[0]?.local as Identifier).name;
4235
}
4336

4437
const importEqualsDeclarations = source.find(

src/transforms/v2-to-v3/modules/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
export * from "./addV3ClientModules";
22
export * from "./getImportEqualsDeclaration";
3+
export * from "./getImportSpecifiers";
34
export * from "./getV2GlobalNameFromModule";
45
export * from "./hasRequire";
56
export * from "./removeV2ClientModule";

0 commit comments

Comments
 (0)