Skip to content

Commit c03c9a6

Browse files
authored
fix(util-user-agent-browser): make native interface consistent with browser (#6575)
* fix(util-user-agent-browser): make native interface consistent with browser * test: fix unit test
1 parent a535403 commit c03c9a6

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

packages/util-user-agent-browser/src/index.native.ts

+18-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@ import { Provider, UserAgent } from "@smithy/types";
22

33
import { DefaultUserAgentOptions } from "./configurations";
44

5+
export interface PreviouslyResolved {
6+
userAgentAppId: Provider<string | undefined>;
7+
}
8+
59
/**
610
* @internal
711
*
812
* Default provider to the user agent in ReactNative. It's a best effort to infer
913
* the device information. It uses bowser library to detect the browser and virsion
1014
*/
11-
export const defaultUserAgent =
12-
({ serviceId, clientVersion }: DefaultUserAgentOptions): Provider<UserAgent> =>
13-
async () => {
15+
export const createDefaultUserAgentProvider =
16+
({ serviceId, clientVersion }: DefaultUserAgentOptions): ((config?: PreviouslyResolved) => Promise<UserAgent>) =>
17+
async (config?: PreviouslyResolved) => {
1418
const sections: UserAgent = [
1519
// sdk-metadata
1620
["aws-sdk-js", clientVersion],
@@ -30,5 +34,16 @@ export const defaultUserAgent =
3034
sections.push([`api/${serviceId}`, clientVersion]);
3135
}
3236

37+
const appId = await config?.userAgentAppId?.();
38+
if (appId) {
39+
sections.push([`app/${appId}`]);
40+
}
41+
3342
return sections;
3443
};
44+
45+
/**
46+
* @internal
47+
* @deprecated use createDefaultUserAgentProvider
48+
*/
49+
export const defaultUserAgent = createDefaultUserAgentProvider;

packages/util-user-agent-browser/src/index.ts

+1-4
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export interface PreviouslyResolved {
1414
* the device information. It uses bowser library to detect the browser and version
1515
*/
1616
export const createDefaultUserAgentProvider =
17-
({ serviceId, clientVersion }: DefaultUserAgentOptions): ((config: PreviouslyResolved) => Promise<UserAgent>) =>
17+
({ serviceId, clientVersion }: DefaultUserAgentOptions): ((config?: PreviouslyResolved) => Promise<UserAgent>) =>
1818
async (config?: PreviouslyResolved) => {
1919
const parsedUA =
2020
typeof window !== "undefined" && window?.navigator?.userAgent
@@ -49,10 +49,7 @@ export const createDefaultUserAgentProvider =
4949
};
5050

5151
/**
52-
*
5352
* @internal
54-
*
5553
* @deprecated use createDefaultUserAgentProvider
56-
*
5754
*/
5855
export const defaultUserAgent = createDefaultUserAgentProvider;

0 commit comments

Comments
 (0)