Skip to content

Commit eb527c1

Browse files
committed
chore: wip 2 for reading hostname from variants
1 parent 70a446f commit eb527c1

File tree

3 files changed

+15
-18
lines changed

3 files changed

+15
-18
lines changed

packages/config-resolver/src/regionInfo/getHostnameFromVariants.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ export interface GetHostnameFromVariantsOptions {
66
}
77

88
export const getHostnameFromVariants = (
9-
variants: EndpointVariant[],
9+
variants: EndpointVariant[] = [],
1010
{ isFipsEndpoint, isDualstackEndpoint }: GetHostnameFromVariantsOptions
11-
) => {
12-
return variants.find(({ tags }) => isFipsEndpoint).hostname;
13-
};
11+
) =>
12+
variants.find(
13+
({ tags }) => isFipsEndpoint === tags.includes("fips") && isDualstackEndpoint === tags.includes("dualstack")
14+
)?.hostname;

packages/config-resolver/src/regionInfo/getRegionInfo.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { RegionInfo } from "@aws-sdk/types";
22

3+
import { getHostnameFromVariants } from "./getHostnameFromVariants";
34
import { getResolvedHostname } from "./getResolvedHostname";
45
import { getResolvedPartition } from "./getResolvedPartition";
56
import { getResolvedSigningRegion } from "./getResolvedSigningRegion";
@@ -27,13 +28,11 @@ export const getRegionInfo = (
2728
const partition = getResolvedPartition(region, { partitionHash });
2829
const resolvedRegion = region in regionHash ? region : partitionHash[partition]?.endpoint ?? region;
2930

30-
const hostname = getResolvedHostname(resolvedRegion, {
31-
isFipsEndpoint,
32-
isDualstackEndpoint,
33-
signingService,
34-
regionVariants: regionHash[resolvedRegion]?.variants,
35-
partitionVariants: partitionHash[partition]?.variants,
36-
});
31+
const hostnameOptions = { isFipsEndpoint, isDualstackEndpoint };
32+
const regionHostname = getHostnameFromVariants(regionHash[resolvedRegion]?.variants, hostnameOptions);
33+
const partitionHostname = getHostnameFromVariants(partitionHash[partition]?.variants, hostnameOptions);
34+
const hostname = getResolvedHostname(resolvedRegion, { signingService, regionHostname, partitionHostname });
35+
3736
const signingRegion = getResolvedSigningRegion(region, {
3837
hostname,
3938
signingRegion: regionHash[resolvedRegion]?.signingRegion,
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
1-
import { EndpointVariant } from "./EndpointVariant";
21
import { getHostnameTemplate } from "./getHostnameTemplate";
32

43
export interface GetResolvedHostnameOptions {
5-
isFipsEndpoint: boolean;
6-
isDualstackEndpoint: boolean;
74
signingService: string;
8-
regionVariants: EndpointVariant[];
9-
partitionVariants: EndpointVariant[];
5+
regionHostname?: string;
6+
partitionHostname?: string;
107
}
118

129
export const getResolvedHostname = (
1310
resolvedRegion: string,
14-
{ signingService, regionVariants, partitionVariants }: GetResolvedHostnameOptions
15-
) => regionHostname ?? getHostnameTemplate(signingService, { partitionVariants }).replace("{region}", resolvedRegion);
11+
{ signingService, regionHostname, partitionHostname }: GetResolvedHostnameOptions
12+
) => regionHostname ?? getHostnameTemplate(signingService, { partitionHostname }).replace("{region}", resolvedRegion);

0 commit comments

Comments
 (0)