1 | import { __assign } from "tslib";
|
2 | import { getHostnameFromVariants } from "./getHostnameFromVariants";
|
3 | import { getResolvedHostname } from "./getResolvedHostname";
|
4 | import { getResolvedPartition } from "./getResolvedPartition";
|
5 | import { getResolvedSigningRegion } from "./getResolvedSigningRegion";
|
6 | export var getRegionInfo = function (region, _a) {
|
7 | var _b, _c, _d, _e, _f, _g;
|
8 | var _h = _a.useFipsEndpoint, useFipsEndpoint = _h === void 0 ? false : _h, _j = _a.useDualstackEndpoint, useDualstackEndpoint = _j === void 0 ? false : _j, signingService = _a.signingService, regionHash = _a.regionHash, partitionHash = _a.partitionHash;
|
9 | var partition = getResolvedPartition(region, { partitionHash: partitionHash });
|
10 | var resolvedRegion = region in regionHash ? region : (_c = (_b = partitionHash[partition]) === null || _b === void 0 ? void 0 : _b.endpoint) !== null && _c !== void 0 ? _c : region;
|
11 | var hostnameOptions = { useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint };
|
12 | var regionHostname = getHostnameFromVariants((_d = regionHash[resolvedRegion]) === null || _d === void 0 ? void 0 : _d.variants, hostnameOptions);
|
13 | var partitionHostname = getHostnameFromVariants((_e = partitionHash[partition]) === null || _e === void 0 ? void 0 : _e.variants, hostnameOptions);
|
14 | var hostname = getResolvedHostname(resolvedRegion, { regionHostname: regionHostname, partitionHostname: partitionHostname });
|
15 | if (hostname === undefined) {
|
16 | throw new Error("Endpoint resolution failed for: ".concat({ resolvedRegion: resolvedRegion, useFipsEndpoint: useFipsEndpoint, useDualstackEndpoint: useDualstackEndpoint }));
|
17 | }
|
18 | var signingRegion = getResolvedSigningRegion(hostname, {
|
19 | signingRegion: (_f = regionHash[resolvedRegion]) === null || _f === void 0 ? void 0 : _f.signingRegion,
|
20 | regionRegex: partitionHash[partition].regionRegex,
|
21 | useFipsEndpoint: useFipsEndpoint,
|
22 | });
|
23 | return __assign(__assign({ partition: partition, signingService: signingService, hostname: hostname }, (signingRegion && { signingRegion: signingRegion })), (((_g = regionHash[resolvedRegion]) === null || _g === void 0 ? void 0 : _g.signingService) && {
|
24 | signingService: regionHash[resolvedRegion].signingService,
|
25 | }));
|
26 | };
|