Skip to content

Commit

Permalink
Add utility getV2ClientModulePath (#76)
Browse files Browse the repository at this point in the history
  • Loading branch information
trivikr committed Mar 8, 2022
1 parent 5690340 commit 4df95bd
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 11 deletions.
5 changes: 5 additions & 0 deletions .changeset/khaki-pillows-sleep.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"aws-sdk-js-codemod": patch
---

Add utility getV2ClientModulePath
3 changes: 2 additions & 1 deletion src/transforms/v2-to-v3/utils/addV3ClientImport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Collection, JSCodeshift } from "jscodeshift";

import { AddV3ClientModuleOptions } from "./addV3ClientModule";
import { PACKAGE_NAME } from "./config";
import { getV2ClientModulePath } from "./getV2ClientModulePath";

export const addV3ClientImport = (
j: JSCodeshift,
Expand Down Expand Up @@ -29,7 +30,7 @@ export const addV3ClientImport = (
.filter(
(path) =>
path.value.source.value === PACKAGE_NAME ||
path.value.source.value === `aws-sdk/clients/${v2ClientName.toLowerCase()}`
path.value.source.value === getV2ClientModulePath(v2ClientName)
)
.insertAfter(
j.importDeclaration(
Expand Down
5 changes: 3 additions & 2 deletions src/transforms/v2-to-v3/utils/addV3ClientRequire.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Collection, Identifier, JSCodeshift, ObjectPattern, Property } from "js
import { AddV3ClientModuleOptions } from "./addV3ClientModule";
import { PACKAGE_NAME } from "./config";
import { getRequireVariableDeclaration } from "./getRequireVariableDeclaration";
import { getV2ClientModulePath } from "./getV2ClientModulePath";

export const addV3ClientRequire = (
j: JSCodeshift,
Expand Down Expand Up @@ -42,9 +43,9 @@ export const addV3ClientRequire = (
}

// Insert after default require if present. If not, insert after client require.
const clientRequireValue = `aws-sdk/clients/${v2ClientName.toLowerCase()}`;
const v2ClientModulePath = getV2ClientModulePath(v2ClientName);
const defaultRequireVarDeclaration = getRequireVariableDeclaration(j, source, PACKAGE_NAME);
const clientRequireVarDeclaration = getRequireVariableDeclaration(j, source, clientRequireValue);
const clientRequireVarDeclaration = getRequireVariableDeclaration(j, source, v2ClientModulePath);

const requireVarDeclaration =
defaultRequireVarDeclaration.size() > 0
Expand Down
13 changes: 6 additions & 7 deletions src/transforms/v2-to-v3/utils/getV2ClientModuleNames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@ import { CLIENT_NAMES } from "./config";
import { containsRequire } from "./containsRequire";
import { getImportIdentifierName } from "./getImportIdentifierName";
import { getRequireIdentifierName } from "./getRequireIdentifierName";
import { getV2ClientModulePath } from "./getV2ClientModulePath";

export const getV2ClientModuleNames = (j: JSCodeshift, source: Collection<any>): string[] =>
CLIENT_NAMES.map((clientName) => `aws-sdk/clients/${clientName.toLowerCase()}`)
.map((v2ClientLiteralValue) =>
containsRequire(j, source)
? getRequireIdentifierName(j, source, v2ClientLiteralValue)
: getImportIdentifierName(j, source, v2ClientLiteralValue)
)
.filter((v2ClientModuleName) => v2ClientModuleName !== undefined);
CLIENT_NAMES.map((clientName) =>
containsRequire(j, source)
? getRequireIdentifierName(j, source, getV2ClientModulePath(clientName))
: getImportIdentifierName(j, source, getV2ClientModulePath(clientName))
).filter((v2ClientModuleName) => v2ClientModuleName !== undefined);
4 changes: 4 additions & 0 deletions src/transforms/v2-to-v3/utils/getV2ClientModulePath.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { PACKAGE_NAME } from "./config";

export const getV2ClientModulePath = (v2ClientName: string) =>
`${PACKAGE_NAME}/clients/${v2ClientName.toLowerCase()}`;
3 changes: 2 additions & 1 deletion src/transforms/v2-to-v3/utils/removeV2ClientModule.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { Collection, JSCodeshift } from "jscodeshift";

import { containsRequire } from "./containsRequire";
import { getV2ClientModulePath } from "./getV2ClientModulePath";
import { removeImportIdentifierName } from "./removeImportIdentifierName";
import { removeRequireIdentifierName } from "./removeRequireIdentifierName";

Expand All @@ -11,7 +12,7 @@ export const removeV2ClientModule = (
) => {
const removeIdentifierNameOptions = {
identifierName: v2ClientName,
literalValue: `aws-sdk/clients/${v2ClientName.toLowerCase()}`,
literalValue: getV2ClientModulePath(v2ClientName),
};
return containsRequire(j, source)
? removeRequireIdentifierName(j, source, removeIdentifierNameOptions)
Expand Down

0 comments on commit 4df95bd

Please sign in to comment.