Skip to content

Commit dc417b9

Browse files
authored
Support ImportEqualsDeclaration (#283)
1 parent d16d0da commit dc417b9

22 files changed

+319
-3
lines changed

.changeset/short-boats-retire.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+
Add support for ImportEqualsDeclaration
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { CLIENTS_TO_TEST } from "./config";
2+
import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode";
3+
4+
export const getGlobalImportEqualsInput = (codegenComment: string) => {
5+
let globalImportEqualsInputContent = `${codegenComment}\n`;
6+
7+
globalImportEqualsInputContent += `import AWS = require("aws-sdk");\n\n`;
8+
globalImportEqualsInputContent += getV2ClientsNewExpressionCode(CLIENTS_TO_TEST, `AWS.`);
9+
10+
return globalImportEqualsInputContent;
11+
};
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import { CLIENT_NAMES_MAP, CLIENT_PACKAGE_NAMES_MAP } from "../../src/transforms/v2-to-v3/config";
2+
import { getV3ClientDefaultLocalName } from "../../src/transforms/v2-to-v3/utils";
3+
import { CLIENTS_TO_TEST } from "./config";
4+
import { getClientNamesSortedByPackageName } from "./getClientNamesSortedByPackageName";
5+
import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode";
6+
7+
export const getGlobalImportEqualsOutput = (codegenComment: string) => {
8+
let globalImportEqualsOutputContent = `${codegenComment};\n`;
9+
10+
const sortedClientNames = getClientNamesSortedByPackageName(CLIENTS_TO_TEST);
11+
12+
for (const v2ClientName of sortedClientNames) {
13+
const v3ClientDefaultLocalName = getV3ClientDefaultLocalName(v2ClientName);
14+
const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`;
15+
globalImportEqualsOutputContent += `import ${v3ClientDefaultLocalName} = require("${v3ClientPackageName}");\n\n`;
16+
17+
const v3ClientName = CLIENT_NAMES_MAP[v2ClientName];
18+
const v3ObjectPattern =
19+
v3ClientName === v2ClientName ? v3ClientName : `${v3ClientName}: ${v2ClientName}`;
20+
globalImportEqualsOutputContent +=
21+
`const {\n` +
22+
` ${v3ObjectPattern}\n` +
23+
`} = ${getV3ClientDefaultLocalName(v2ClientName)};\n\n`;
24+
}
25+
26+
globalImportEqualsOutputContent += getV3ClientsNewExpressionCode(CLIENTS_TO_TEST);
27+
28+
return globalImportEqualsOutputContent;
29+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { CLIENTS_TO_TEST } from "./config";
2+
import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode";
3+
4+
export const getServiceImportEqualsInput = (codegenComment: string) => {
5+
let serviceImportEqualsInputContent = `${codegenComment}\n`;
6+
7+
for (const clientName of CLIENTS_TO_TEST) {
8+
serviceImportEqualsInputContent += `import ${clientName} = require("aws-sdk/clients/${clientName.toLowerCase()}");\n`;
9+
}
10+
serviceImportEqualsInputContent += getV2ClientsNewExpressionCode(CLIENTS_TO_TEST);
11+
12+
return serviceImportEqualsInputContent;
13+
};
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import { CLIENT_NAMES_MAP, CLIENT_PACKAGE_NAMES_MAP } from "../../src/transforms/v2-to-v3/config";
2+
import { getV3ClientDefaultLocalName } from "../../src/transforms/v2-to-v3/utils";
3+
import { CLIENTS_TO_TEST } from "./config";
4+
import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode";
5+
6+
export const getServiceImportEqualsOutput = (codegenComment: string) => {
7+
let serviceImportEqualsOutputContent = `${codegenComment};\n`;
8+
9+
for (const v2ClientName of CLIENTS_TO_TEST) {
10+
const v3ClientDefaultLocalName = getV3ClientDefaultLocalName(v2ClientName);
11+
const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`;
12+
serviceImportEqualsOutputContent += `import ${v3ClientDefaultLocalName} = require("${v3ClientPackageName}");\n\n`;
13+
14+
const v3ClientName = CLIENT_NAMES_MAP[v2ClientName];
15+
const v3ObjectPattern =
16+
v3ClientName === v2ClientName ? v3ClientName : `${v3ClientName}: ${v2ClientName}`;
17+
serviceImportEqualsOutputContent +=
18+
`const {\n` +
19+
` ${v3ObjectPattern}\n` +
20+
`} = ${getV3ClientDefaultLocalName(v2ClientName)};\n\n`;
21+
}
22+
23+
serviceImportEqualsOutputContent += getV3ClientsNewExpressionCode(CLIENTS_TO_TEST);
24+
25+
return serviceImportEqualsOutputContent;
26+
};

scripts/generateNewClientTests/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@
33
import { writeFile } from "fs/promises";
44
import { join } from "path";
55

6+
import { getGlobalImportEqualsInput } from "./getGlobalImportEqualsInput";
7+
import { getGlobalImportEqualsOutput } from "./getGlobalImportEqualsOutput";
68
import { getGlobalImportInput } from "./getGlobalImportInput";
79
import { getGlobalImportOutput } from "./getGlobalImportOutput";
810
import { getGlobalRequireInput } from "./getGlobalRequireInput";
911
import { getGlobalRequireOutput } from "./getGlobalRequireOutput";
1012
import { getServiceImportDeepInput } from "./getServiceImportDeepInput";
1113
import { getServiceImportDeepOutput } from "./getServiceImportDeepOutput";
14+
import { getServiceImportEqualsInput } from "./getServiceImportEqualsInput";
15+
import { getServiceImportEqualsOutput } from "./getServiceImportEqualsOutput";
1216
import { getServiceImportInput } from "./getServiceImportInput";
1317
import { getServiceImportOutput } from "./getServiceImportOutput";
1418
import { getServiceRequireDeepInput } from "./getServiceRequireDeepInput";
@@ -30,10 +34,14 @@ const newClientTestsPath = join(__dirname, "..", "..", newClientsTestsFolder);
3034
for (const [fileName, getFileContent] of [
3135
["global-import.input.js", getGlobalImportInput],
3236
["global-import.output.js", getGlobalImportOutput],
37+
["global-import-equals.input.ts", getGlobalImportEqualsInput],
38+
["global-import-equals.output.ts", getGlobalImportEqualsOutput],
3339
["global-require.input.js", getGlobalRequireInput],
3440
["global-require.output.js", getGlobalRequireOutput],
3541
["service-import.input.js", getServiceImportInput],
3642
["service-import.output.js", getServiceImportOutput],
43+
["service-import-equals.input.ts", getServiceImportEqualsInput],
44+
["service-import-equals.output.ts", getServiceImportEqualsOutput],
3745
["service-import-deep.input.js", getServiceImportDeepInput],
3846
["service-import-deep.output.js", getServiceImportDeepOutput],
3947
["service-require.input.js", getServiceRequireInput],
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// This file is generated by scripts/generateNewClientTests/index.ts
2+
// Do not edit this file directly. Instead, edit the script and run it to regenerate this file.
3+
"use strict";
4+
import AWS = require("aws-sdk");
5+
6+
new AWS.ACM();
7+
new AWS.AccessAnalyzer();
8+
new AWS.Discovery();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This file is generated by scripts/generateNewClientTests/index.ts
2+
// Do not edit this file directly. Instead, edit the script and run it to regenerate this file.
3+
"use strict";;
4+
import AWS_AccessAnalyzer = require("@aws-sdk/client-accessanalyzer");
5+
6+
const {
7+
AccessAnalyzer
8+
} = AWS_AccessAnalyzer;
9+
10+
import AWS_ACM = require("@aws-sdk/client-acm");
11+
12+
const {
13+
ACM
14+
} = AWS_ACM;
15+
16+
import AWS_Discovery = require("@aws-sdk/client-application-discovery-service");
17+
18+
const {
19+
ApplicationDiscoveryService: Discovery
20+
} = AWS_Discovery;
21+
22+
new ACM();
23+
new AccessAnalyzer();
24+
new Discovery();
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// This file is generated by scripts/generateNewClientTests/index.ts
2+
// Do not edit this file directly. Instead, edit the script and run it to regenerate this file.
3+
"use strict";
4+
import ACM = require("aws-sdk/clients/acm");
5+
import AccessAnalyzer = require("aws-sdk/clients/accessanalyzer");
6+
import Discovery = require("aws-sdk/clients/discovery");
7+
new ACM();
8+
new AccessAnalyzer();
9+
new Discovery();
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// This file is generated by scripts/generateNewClientTests/index.ts
2+
// Do not edit this file directly. Instead, edit the script and run it to regenerate this file.
3+
"use strict";;
4+
import AWS_ACM = require("@aws-sdk/client-acm");
5+
6+
const {
7+
ACM
8+
} = AWS_ACM;
9+
10+
import AWS_AccessAnalyzer = require("@aws-sdk/client-accessanalyzer");
11+
12+
const {
13+
AccessAnalyzer
14+
} = AWS_AccessAnalyzer;
15+
16+
import AWS_Discovery = require("@aws-sdk/client-application-discovery-service");
17+
18+
const {
19+
ApplicationDiscoveryService: Discovery
20+
} = AWS_Discovery;
21+
22+
new ACM();
23+
new AccessAnalyzer();
24+
new Discovery();

0 commit comments

Comments
 (0)