Skip to content

Commit 90129c7

Browse files
committed
fix: populate x-amz-user-agent for browser and user-agent for node
1 parent 28008c2 commit 90129c7

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

packages/middleware-user-agent/src/user-agent-middleware.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ describe("userAgentMiddleware", () => {
2323
const handler = middleware(mockNextHandler, { userAgent: [["cfg/retry-mode", "standard"]] });
2424
await handler({ input: {}, request: new HttpRequest({ headers: {} }) });
2525
expect(mockNextHandler.mock.calls.length).toEqual(1);
26-
const sdkUserAgent = mockNextHandler.mock.calls[0][0].request.headers[X_AMZ_USER_AGENT];
26+
const sdkUserAgent = mockNextHandler.mock.calls[0][0].request.headers[USER_AGENT];
2727
expect(sdkUserAgent).toEqual(expect.stringContaining("aws-sdk-js/1.0.0"));
2828
expect(sdkUserAgent).toEqual(expect.stringContaining("default_agent/1.0.0"));
2929
expect(sdkUserAgent).toEqual(expect.stringContaining("custom_ua/abc"));
3030
expect(sdkUserAgent).toEqual(expect.stringContaining("cfg/retry-mode/standard"));
31-
expect(mockNextHandler.mock.calls[0][0].request.headers[USER_AGENT]).toEqual(
31+
expect(mockNextHandler.mock.calls[0][0].request.headers[X_AMZ_USER_AGENT]).toEqual(
3232
expect.stringContaining("aws-sdk-js/1.0.0")
3333
);
3434
});

packages/middleware-user-agent/src/user-agent-middleware.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,22 @@ export const userAgentMiddleware = (options: UserAgentResolvedConfig) => <Output
3636
const userAgent = context?.userAgent?.map(escapeUserAgent) || [];
3737
const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);
3838
const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];
39+
3940
// Set value to AWS-specific user agent header
40-
headers[X_AMZ_USER_AGENT] = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(SPACE);
41+
const sdkUserAgentValue = [...defaultUserAgent, ...userAgent, ...customUserAgent].join(SPACE);
4142
// Get value to be sent with non-AWS-specific user agent header.
4243
const normalUAValue = [
4344
...defaultUserAgent.filter((section) => section.startsWith("aws-sdk-")),
4445
...customUserAgent,
4546
].join(SPACE);
46-
if (options.runtime !== "browser" && normalUAValue) {
47-
headers[USER_AGENT] = headers[USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;
47+
48+
if (options.runtime !== "browser") {
49+
if (normalUAValue) {
50+
headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT] ? `${headers[USER_AGENT]} ${normalUAValue}` : normalUAValue;
51+
}
52+
headers[USER_AGENT] = sdkUserAgentValue;
53+
} else {
54+
headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;
4855
}
4956

5057
return next({

0 commit comments

Comments
 (0)