1 | import { HttpRequest } from "@smithy/protocol-http";
|
2 | export function resolveHostHeaderConfig(input) {
|
3 | return input;
|
4 | }
|
5 | export const hostHeaderMiddleware = (options) => (next) => async (args) => {
|
6 | if (!HttpRequest.isInstance(args.request))
|
7 | return next(args);
|
8 | const { request } = args;
|
9 | const { handlerProtocol = "" } = options.requestHandler.metadata || {};
|
10 | if (handlerProtocol.indexOf("h2") >= 0 && !request.headers[":authority"]) {
|
11 | delete request.headers["host"];
|
12 | request.headers[":authority"] = request.hostname + (request.port ? ":" + request.port : "");
|
13 | }
|
14 | else if (!request.headers["host"]) {
|
15 | let host = request.hostname;
|
16 | if (request.port != null)
|
17 | host += `:${request.port}`;
|
18 | request.headers["host"] = host;
|
19 | }
|
20 | return next(args);
|
21 | };
|
22 | export const hostHeaderMiddlewareOptions = {
|
23 | name: "hostHeaderMiddleware",
|
24 | step: "build",
|
25 | priority: "low",
|
26 | tags: ["HOST"],
|
27 | override: true,
|
28 | };
|
29 | export const getHostHeaderPlugin = (options) => ({
|
30 | applyToStack: (clientStack) => {
|
31 | clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);
|
32 | },
|
33 | });
|