Skip to content

Commit 962de3f

Browse files
authored
Update prerelease script to test changed clients (#970)
1 parent 510d969 commit 962de3f

File tree

3 files changed

+53
-30
lines changed

3 files changed

+53
-30
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"generate:map": "tsx scripts/generateClientTypesMap",
3939
"generate:tests": "tsx scripts/generateNewClientTests",
4040
"lint": "biome lint --write",
41-
"release": "tsx scripts/testChangedPackageNames && npm run build && changeset publish",
41+
"release": "tsx scripts/testUpdatedIdentifiers && npm run build && changeset publish",
4242
"test": "vitest",
4343
"version": "changeset version && npm i --package-lock-only"
4444
},

scripts/testChangedPackageNames/index.ts

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { exec } from "node:child_process";
2+
import { mkdtemp } from "node:fs/promises";
3+
import { tmpdir } from "node:os";
4+
import { join } from "node:path";
5+
import { promisify } from "node:util";
6+
import {
7+
CLIENT_NAMES_MAP as CLIENT_NAMES_MAP_TO_PUBLISH,
8+
CLIENT_PACKAGE_NAMES_MAP as PACKAGE_NAMES_MAP_TO_PUBLISH,
9+
} from "../../src/transforms/v2-to-v3/config";
10+
11+
const execAsync = promisify(exec);
12+
13+
(async () => {
14+
// Create temporary directory
15+
const tempDirCodemod = await mkdtemp(join(tmpdir(), "codemod-"));
16+
await execAsync("npm install aws-sdk-js-codemod@latest", { cwd: tempDirCodemod });
17+
18+
const { CLIENT_NAMES_MAP, CLIENT_PACKAGE_NAMES_MAP } = await import(
19+
join(tempDirCodemod, "node_modules/aws-sdk-js-codemod/dist/transforms/v2-to-v3/config")
20+
);
21+
22+
const changedPackages = Object.entries(PACKAGE_NAMES_MAP_TO_PUBLISH).filter(
23+
([key]) => PACKAGE_NAMES_MAP_TO_PUBLISH[key] !== CLIENT_PACKAGE_NAMES_MAP[key]
24+
);
25+
26+
const changedPackageNames = Object.values(changedPackages);
27+
console.log(`Changed package names: [ ${changedPackageNames.join(", ")} ]`);
28+
for (const packageName of changedPackageNames) {
29+
const npmPackageName = `@aws-sdk/${packageName}`;
30+
await execAsync(`npm show ${npmPackageName} version`);
31+
console.log(`${npmPackageName} exists`);
32+
}
33+
34+
const changedClients = Object.entries(CLIENT_NAMES_MAP_TO_PUBLISH).filter(
35+
([key]) => CLIENT_NAMES_MAP_TO_PUBLISH[key] !== CLIENT_NAMES_MAP[key]
36+
);
37+
38+
console.log(`Changed clients: [ ${changedClients.map(([, value]) => value).join(", ")} ]`);
39+
for (const [clientKey, clientName] of changedClients) {
40+
const npmPackageName = `@aws-sdk/${PACKAGE_NAMES_MAP_TO_PUBLISH[clientKey]}`;
41+
const tempDirClient = await mkdtemp(join(tmpdir(), "codemod-"));
42+
43+
const execOptions = { cwd: tempDirClient };
44+
await execAsync(`npm install ${npmPackageName}`, execOptions);
45+
await execAsync(
46+
`echo 'import { ${clientName} } from "${npmPackageName}"' > index.mjs`,
47+
execOptions
48+
);
49+
await execAsync("node index.mjs", execOptions);
50+
console.log(`Client '${clientName}' exists in '${npmPackageName}'.`);
51+
}
52+
})();

0 commit comments

Comments
 (0)