Skip to content

Commit 3c5197d

Browse files
authored
Support updating variable declaration with require CallExpression (#278)
1 parent e3d2c5a commit 3c5197d

21 files changed

+1221
-1493
lines changed

.changeset/famous-steaks-watch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"aws-sdk-js-codemod": patch
3+
---
4+
5+
Support updating variable declaration with require CallExpression

scripts/generateNewClientTests/getGlobalRequireOutput.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
1+
import { CLIENT_NAMES_MAP, CLIENT_PACKAGE_NAMES_MAP } from "../../src/transforms/v2-to-v3/config";
12
import { getClientNamesSortedByPackageName } from "./getClientNamesSortedByPackageName";
23
import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode";
3-
import { getV3PackageRequireCode } from "./getV3PackageRequireCode";
44

55
export const getGlobalRequireOutput = (codegenComment: string) => {
6-
let globalRequireOutputContent = `${codegenComment}\n\n`;
6+
let globalRequireOutputContent = `${codegenComment}\n`;
77

8-
globalRequireOutputContent += getV3PackageRequireCode(getClientNamesSortedByPackageName(), {
9-
extraNewLine: true,
10-
});
8+
const sortedClientNames = getClientNamesSortedByPackageName();
9+
globalRequireOutputContent += `const `;
10+
for (const v2ClientName of sortedClientNames) {
11+
const v3ClientName = CLIENT_NAMES_MAP[v2ClientName];
12+
const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`;
13+
const v3RequireKeyValuePair =
14+
v3ClientName === v2ClientName ? v3ClientName : `${v3ClientName}: ${v2ClientName}`;
15+
globalRequireOutputContent +=
16+
`{\n` +
17+
` ${v3RequireKeyValuePair}\n` +
18+
` } = require("${v3ClientPackageName}"),\n` +
19+
` `;
20+
}
21+
globalRequireOutputContent = globalRequireOutputContent.replace(/,\n {6}$/, ";\n\n");
1122
globalRequireOutputContent += getV3ClientsNewExpressionCode();
1223

1324
return globalRequireOutputContent;

scripts/generateNewClientTests/getServiceRequireOutput.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,20 @@
1-
import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/config";
1+
import {
2+
CLIENT_NAMES,
3+
CLIENT_NAMES_MAP,
4+
CLIENT_PACKAGE_NAMES_MAP,
5+
} from "../../src/transforms/v2-to-v3/config";
26
import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode";
3-
import { getV3PackageRequireCode } from "./getV3PackageRequireCode";
47

58
export const getServiceRequireOutput = (codegenComment: string) => {
69
let serviceRequireOutputContent = `${codegenComment}\n`;
710

8-
serviceRequireOutputContent += getV3PackageRequireCode(CLIENT_NAMES);
11+
for (const v2ClientName of CLIENT_NAMES) {
12+
const v3ClientName = CLIENT_NAMES_MAP[v2ClientName];
13+
const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`;
14+
const v3RequireKeyValuePair =
15+
v3ClientName === v2ClientName ? v3ClientName : `${v3ClientName}: ${v2ClientName}`;
16+
serviceRequireOutputContent += `const {\n ${v3RequireKeyValuePair}\n} = require("${v3ClientPackageName}");\n`;
17+
}
918
serviceRequireOutputContent += `\n`;
1019
serviceRequireOutputContent += getV3ClientsNewExpressionCode();
1120

scripts/generateNewClientTests/getV3PackageRequireCode.ts

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/transforms/v2-to-v3/__fixtures__/api-input-output-type/global-require.output.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
const {
2-
DynamoDB,
3-
ListTablesCommandInput,
4-
ListTablesCommandOutput
5-
} = require("@aws-sdk/client-dynamodb");
6-
7-
const {
8-
STS,
9-
GetCallerIdentityCommandInput,
10-
GetCallerIdentityCommandOutput
11-
} = require("@aws-sdk/client-sts");
2+
DynamoDB,
3+
ListTablesCommandInput,
4+
ListTablesCommandOutput
5+
} = require("@aws-sdk/client-dynamodb"),
6+
{
7+
STS,
8+
GetCallerIdentityCommandInput,
9+
GetCallerIdentityCommandOutput
10+
} = require("@aws-sdk/client-sts");
1211

1312
const ddbClient = new DynamoDB({ region: "us-west-2" });
1413
const listTablesInput: ListTablesCommandInput = { Limit: 10 };
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const AWS = require("aws-sdk"),
2+
ddbClient = new AWS.DynamoDB(),
3+
discoveryClient = new AWS.Discovery();
4+
5+
const ddbResponse = await ddbClient.listTables().promise();
6+
const discoveryResponse = await discoveryClient.describeAgents().promise();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const {
2+
ApplicationDiscoveryService: Discovery
3+
} = require("@aws-sdk/client-application-discovery-service"),
4+
{
5+
DynamoDB
6+
} = require("@aws-sdk/client-dynamodb"),
7+
ddbClient = new DynamoDB(),
8+
discoveryClient = new Discovery();
9+
10+
const ddbResponse = await ddbClient.listTables();
11+
const discoveryResponse = await discoveryClient.describeAgents();
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const { DynamoDB, Discovery } = require("aws-sdk"),
2+
ddbClient = new DynamoDB(),
3+
discoveryClient = new Discovery();
4+
5+
const ddbResponse = await ddbClient.listTables().promise();
6+
const discoveryResponse = await discoveryClient.describeAgents().promise();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const {
2+
ApplicationDiscoveryService: Discovery
3+
} = require("@aws-sdk/client-application-discovery-service"),
4+
{
5+
DynamoDB
6+
} = require("@aws-sdk/client-dynamodb"),
7+
ddbClient = new DynamoDB(),
8+
discoveryClient = new Discovery();
9+
10+
const ddbResponse = await ddbClient.listTables();
11+
const discoveryResponse = await discoveryClient.describeAgents();
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const DynamoDB = require("aws-sdk/clients/dynamodb"),
2+
Discovery = require("aws-sdk/clients/discovery"),
3+
ddbClient = new DynamoDB(),
4+
discoveryClient = new Discovery();
5+
6+
const ddbResponse = await ddbClient.listTables().promise();
7+
const discoveryResponse = await discoveryClient.describeAgents().promise();

0 commit comments

Comments
 (0)