Skip to content

Commit 6febb5f

Browse files
authored
chore(protocol-test): update json 1.0 test (#2616)
* chore(geneate-clients): copy client with diff name to folder * fix(generate-clients): copy client with different name of the folder * chore(protocol-test): update json 1.0 test
1 parent 514b3e7 commit 6febb5f

File tree

7 files changed

+98
-84
lines changed

7 files changed

+98
-84
lines changed

Diff for: protocol_tests/aws-json-10/JSONRPC10Client.ts

+10-12
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
SimpleScalarPropertiesCommandInput,
1616
SimpleScalarPropertiesCommandOutput,
1717
} from "./commands/SimpleScalarPropertiesCommand";
18-
import { ClientDefaultValues as __ClientDefaultValues } from "./runtimeConfig";
18+
import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig";
1919
import {
2020
EndpointsInputConfig,
2121
EndpointsResolvedConfig,
@@ -50,6 +50,7 @@ import {
5050
RegionInfoProvider,
5151
Decoder as __Decoder,
5252
Encoder as __Encoder,
53+
Hash as __Hash,
5354
HashConstructor as __HashConstructor,
5455
HttpHandlerOptions as __HttpHandlerOptions,
5556
Logger as __Logger,
@@ -86,7 +87,7 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
8687
requestHandler?: __HttpHandler;
8788

8889
/**
89-
* A constructor for a class implementing the @aws-sdk/types.Hash interface
90+
* A constructor for a class implementing the {@link __Hash} interface
9091
* that computes the SHA-256 HMAC or checksum of a string or binary buffer.
9192
* @internal
9293
*/
@@ -146,12 +147,6 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
146147
*/
147148
disableHostPrefix?: boolean;
148149

149-
/**
150-
* Unique service identifier.
151-
* @internal
152-
*/
153-
serviceId?: string;
154-
155150
/**
156151
* Value for how many times a request will be made at most in case of retry.
157152
*/
@@ -168,6 +163,12 @@ export interface ClientDefaults extends Partial<__SmithyResolvedConfiguration<__
168163
*/
169164
logger?: __Logger;
170165

166+
/**
167+
* Unique service identifier.
168+
* @internal
169+
*/
170+
serviceId?: string;
171+
171172
/**
172173
* Fetch related hostname, signing name or signing region with given region.
173174
* @internal
@@ -217,10 +218,7 @@ export class JSONRPC10Client extends __Client<
217218
readonly config: JSONRPC10ClientResolvedConfig;
218219

219220
constructor(configuration: JSONRPC10ClientConfig) {
220-
let _config_0 = {
221-
...__ClientDefaultValues,
222-
...configuration,
223-
};
221+
let _config_0 = __getRuntimeConfig(configuration);
224222
let _config_1 = resolveRegionConfig(_config_0);
225223
let _config_2 = resolveEndpointsConfig(_config_1);
226224
let _config_3 = resolveRetryConfig(_config_2);

Diff for: protocol_tests/aws-json-10/runtimeConfig.browser.ts

+22-19
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,30 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-browser";
77
import { calculateBodyLength } from "@aws-sdk/util-body-length-browser";
88
import { defaultUserAgent } from "@aws-sdk/util-user-agent-browser";
99
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-browser";
10-
import { ClientDefaults } from "./JSONRPC10Client";
11-
import { ClientSharedValues } from "./runtimeConfig.shared";
10+
import { JSONRPC10ClientConfig } from "./JSONRPC10Client";
11+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1212

1313
/**
1414
* @internal
1515
*/
16-
export const ClientDefaultValues: Required<ClientDefaults> = {
17-
...ClientSharedValues,
18-
runtime: "browser",
19-
base64Decoder: fromBase64,
20-
base64Encoder: toBase64,
21-
bodyLengthChecker: calculateBodyLength,
22-
defaultUserAgentProvider: defaultUserAgent({
23-
serviceId: ClientSharedValues.serviceId,
24-
clientVersion: packageInfo.version,
25-
}),
26-
maxAttempts: DEFAULT_MAX_ATTEMPTS,
27-
requestHandler: new FetchHttpHandler(),
28-
retryModeProvider: () => Promise.resolve(DEFAULT_RETRY_MODE),
29-
sha256: Sha256,
30-
streamCollector,
31-
utf8Decoder: fromUtf8,
32-
utf8Encoder: toUtf8,
16+
export const getRuntimeConfig = (config: JSONRPC10ClientConfig) => {
17+
const clientSharedValues = getSharedRuntimeConfig(config);
18+
return {
19+
...clientSharedValues,
20+
...config,
21+
runtime: "browser",
22+
base64Decoder: config.base64Decoder ?? fromBase64,
23+
base64Encoder: config.base64Encoder ?? toBase64,
24+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
25+
defaultUserAgentProvider:
26+
config.defaultUserAgentProvider ??
27+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
28+
maxAttempts: config.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
29+
requestHandler: config.requestHandler ?? new FetchHttpHandler(),
30+
retryModeProvider: config.retryModeProvider ?? (() => Promise.resolve(DEFAULT_RETRY_MODE)),
31+
sha256: config.sha256 ?? Sha256,
32+
streamCollector: config.streamCollector ?? streamCollector,
33+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
34+
utf8Encoder: config.utf8Encoder ?? toUtf8,
35+
};
3336
};

Diff for: protocol_tests/aws-json-10/runtimeConfig.native.ts

+10-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
import { Sha256 } from "@aws-crypto/sha256-js";
2-
import { ClientDefaults } from "./JSONRPC10Client";
3-
import { ClientDefaultValues as BrowserDefaults } from "./runtimeConfig.browser";
2+
import { JSONRPC10ClientConfig } from "./JSONRPC10Client";
3+
import { getRuntimeConfig as getBrowserRuntimeConfig } from "./runtimeConfig.browser";
44

55
/**
66
* @internal
77
*/
8-
export const ClientDefaultValues: Required<ClientDefaults> = {
9-
...BrowserDefaults,
10-
runtime: "react-native",
11-
sha256: Sha256,
8+
export const getRuntimeConfig = (config: JSONRPC10ClientConfig) => {
9+
const browserDefaults = getBrowserRuntimeConfig(config);
10+
return {
11+
...browserDefaults,
12+
...config,
13+
runtime: "react-native",
14+
sha256: config.sha256 ?? Sha256,
15+
};
1216
};

Diff for: protocol_tests/aws-json-10/runtimeConfig.shared.ts

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import { defaultRegionInfoProvider } from "./endpoints";
22
import { Logger as __Logger } from "@aws-sdk/types";
33
import { parseUrl } from "@aws-sdk/url-parser";
4+
import { JSONRPC10ClientConfig } from "./JSONRPC10Client";
45

56
/**
67
* @internal
78
*/
8-
export const ClientSharedValues = {
9+
export const getRuntimeConfig = (config: JSONRPC10ClientConfig) => ({
910
apiVersion: "2020-07-14",
10-
disableHostPrefix: false,
11-
logger: {} as __Logger,
12-
regionInfoProvider: defaultRegionInfoProvider,
13-
serviceId: "JSON RPC 10",
14-
urlParser: parseUrl,
15-
};
11+
disableHostPrefix: config.disableHostPrefix ?? false,
12+
logger: config.logger ?? ({} as __Logger),
13+
regionInfoProvider: config.regionInfoProvider ?? defaultRegionInfoProvider,
14+
serviceId: config.serviceId ?? "JSON RPC 10",
15+
urlParser: config.urlParser ?? parseUrl,
16+
});

Diff for: protocol_tests/aws-json-10/runtimeConfig.ts

+22-19
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,30 @@ import { fromBase64, toBase64 } from "@aws-sdk/util-base64-node";
88
import { calculateBodyLength } from "@aws-sdk/util-body-length-node";
99
import { defaultUserAgent } from "@aws-sdk/util-user-agent-node";
1010
import { fromUtf8, toUtf8 } from "@aws-sdk/util-utf8-node";
11-
import { ClientDefaults } from "./JSONRPC10Client";
12-
import { ClientSharedValues } from "./runtimeConfig.shared";
11+
import { JSONRPC10ClientConfig } from "./JSONRPC10Client";
12+
import { getRuntimeConfig as getSharedRuntimeConfig } from "./runtimeConfig.shared";
1313

1414
/**
1515
* @internal
1616
*/
17-
export const ClientDefaultValues: Required<ClientDefaults> = {
18-
...ClientSharedValues,
19-
runtime: "node",
20-
base64Decoder: fromBase64,
21-
base64Encoder: toBase64,
22-
bodyLengthChecker: calculateBodyLength,
23-
defaultUserAgentProvider: defaultUserAgent({
24-
serviceId: ClientSharedValues.serviceId,
25-
clientVersion: packageInfo.version,
26-
}),
27-
maxAttempts: loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
28-
requestHandler: new NodeHttpHandler(),
29-
retryModeProvider: loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
30-
sha256: Hash.bind(null, "sha256"),
31-
streamCollector,
32-
utf8Decoder: fromUtf8,
33-
utf8Encoder: toUtf8,
17+
export const getRuntimeConfig = (config: JSONRPC10ClientConfig) => {
18+
const clientSharedValues = getSharedRuntimeConfig(config);
19+
return {
20+
...clientSharedValues,
21+
...config,
22+
runtime: "node",
23+
base64Decoder: config.base64Decoder ?? fromBase64,
24+
base64Encoder: config.base64Encoder ?? toBase64,
25+
bodyLengthChecker: config.bodyLengthChecker ?? calculateBodyLength,
26+
defaultUserAgentProvider:
27+
config.defaultUserAgentProvider ??
28+
defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
29+
maxAttempts: config.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS),
30+
requestHandler: config.requestHandler ?? new NodeHttpHandler(),
31+
retryModeProvider: config.retryModeProvider ?? loadNodeConfig(NODE_RETRY_MODE_CONFIG_OPTIONS),
32+
sha256: config.sha256 ?? Hash.bind(null, "sha256"),
33+
streamCollector: config.streamCollector ?? streamCollector,
34+
utf8Decoder: config.utf8Decoder ?? fromUtf8,
35+
utf8Encoder: config.utf8Encoder ?? toUtf8,
36+
};
3437
};

Diff for: scripts/generate-clients/copy-to-clients.js

+25-20
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ const { normalize, join } = require("path");
33
const { copySync, removeSync } = require("fs-extra");
44
const { readdirSync, lstatSync, readFileSync, existsSync, writeFileSync } = require("fs");
55

6-
const getOverwritablePredicate = (packageName) => (pathName) => {
7-
const overwritablePathnames = [
6+
const getOverwritableDirectories = (subDirectories, packageName) => {
7+
const additionalGeneratedFiles = {
8+
"@aws-sdk/client-sts": ["defaultRoleAssumers.ts", "defaultStsRoleAssumers.ts", "defaultRoleAssumers.spec.ts"],
9+
};
10+
const overwritableDirectories = [
811
"commands",
912
"models",
1013
"protocols",
@@ -20,18 +23,18 @@ const getOverwritablePredicate = (packageName) => (pathName) => {
2023
"endpoints.ts",
2124
"README.md",
2225
];
23-
const additionalGeneratedFiles = {
24-
"@aws-sdk/client-sts": ["defaultRoleAssumers.ts", "defaultStsRoleAssumers.ts", "defaultRoleAssumers.spec.ts"],
25-
};
26-
return (
27-
pathName
28-
.toLowerCase()
29-
.startsWith(
30-
packageName.toLowerCase().replace("@aws-sdk/client-", "").replace("@aws-sdk/aws-", "").replace(/-/g, "")
31-
) ||
32-
overwritablePathnames.indexOf(pathName) >= 0 ||
33-
additionalGeneratedFiles[packageName.toLowerCase()]?.indexOf(pathName) >= 0
34-
);
26+
return subDirectories.filter((subDirectory) => {
27+
const isBareBoneClient =
28+
subDirectory.endsWith("Client.ts") && subDirectories.indexOf(subDirectory.replace("Client.ts", ".ts")) >= 0;
29+
const isAggregateClient =
30+
subDirectory.endsWith(".ts") && subDirectories.indexOf(subDirectory.replace(".ts", "Client.ts")) >= 0;
31+
return (
32+
isBareBoneClient ||
33+
isAggregateClient ||
34+
overwritableDirectories.indexOf(subDirectory) >= 0 ||
35+
additionalGeneratedFiles[packageName]?.indexOf(subDirectory) >= 0
36+
);
37+
});
3538
};
3639

3740
/**
@@ -109,7 +112,6 @@ const copyToClients = async (sourceDir, destinationDir) => {
109112

110113
console.log(`copying ${packageName} from ${artifactPath} to ${destinationDir}`);
111114
const destPath = join(destinationDir, clientName);
112-
const overwritablePredicate = getOverwritablePredicate(packageName);
113115

114116
// Code to move files/folders prefixed with `doc-client-` to `lib/lib-dynamodb`
115117
if (clientName === "client-dynamodb") {
@@ -124,7 +126,9 @@ const copyToClients = async (sourceDir, destinationDir) => {
124126
}
125127
}
126128

127-
for (const packageSub of readdirSync(artifactPath)) {
129+
const packageSubs = readdirSync(artifactPath);
130+
const overWritableSubs = getOverwritableDirectories(packageSubs, packageName);
131+
for (const packageSub of packageSubs) {
128132
const packageSubPath = join(artifactPath, packageSub);
129133
const destSubPath = join(destPath, packageSub);
130134

@@ -141,7 +145,7 @@ const copyToClients = async (sourceDir, destinationDir) => {
141145
},
142146
};
143147
writeFileSync(destSubPath, JSON.stringify(mergedManifest, null, 2).concat(`\n`));
144-
} else if (overwritablePredicate(packageSub) || !existsSync(destSubPath)) {
148+
} else if (overWritableSubs.includes(packageSub) || !existsSync(destSubPath)) {
145149
if (lstatSync(packageSubPath).isDirectory()) removeSync(destSubPath);
146150
copySync(packageSubPath, destSubPath, {
147151
overwrite: true,
@@ -168,9 +172,10 @@ const copyServerTests = async (sourceDir, destinationDir) => {
168172

169173
console.log(`copying ${packageName} from ${artifactPath} to ${destinationDir}`);
170174
const destPath = join(destinationDir, testName);
171-
const overwritablePredicate = getOverwritablePredicate(packageName);
172175

173-
for (const packageSub of readdirSync(artifactPath)) {
176+
const packageSubs = readdirSync(artifactPath);
177+
const overWritableSubs = getOverwritableDirectories(packageSubs, packageName);
178+
for (const packageSub of packageSubs) {
174179
const packageSubPath = join(artifactPath, packageSub);
175180
const destSubPath = join(destPath, packageSub);
176181

@@ -187,7 +192,7 @@ const copyServerTests = async (sourceDir, destinationDir) => {
187192
},
188193
};
189194
writeFileSync(destSubPath, JSON.stringify(mergedManifest, null, 2).concat(`\n`));
190-
} else if (overwritablePredicate(packageSub) || !existsSync(destSubPath)) {
195+
} else if (overWritableSubs.includes(packageSub) || !existsSync(destSubPath)) {
191196
if (lstatSync(packageSubPath).isDirectory()) removeSync(destSubPath);
192197
copySync(packageSubPath, destSubPath, {
193198
overwrite: true,

Diff for: scripts/generate-clients/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const {
4848
await prettifyCode(CODE_GEN_PROTOCOL_TESTS_OUTPUT_DIR);
4949
await copyServerTests(CODE_GEN_PROTOCOL_TESTS_OUTPUT_DIR, PROTOCOL_TESTS_CLIENTS_DIR);
5050

51-
emptyDirSync(CODE_GEN_PROTOCOL_TESTS_OUTPUT_DIR);
51+
// emptyDirSync(CODE_GEN_PROTOCOL_TESTS_OUTPUT_DIR);
5252
emptyDirSync(TEMP_CODE_GEN_INPUT_DIR);
5353

5454
rmdirSync(TEMP_CODE_GEN_INPUT_DIR);

0 commit comments

Comments
 (0)