UNPKG

1.18 kBJavaScriptView Raw
1import { HttpRequest } from "@smithy/protocol-http";
2export function resolveHostHeaderConfig(input) {
3 return input;
4}
5export 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};
22export const hostHeaderMiddlewareOptions = {
23 name: "hostHeaderMiddleware",
24 step: "build",
25 priority: "low",
26 tags: ["HOST"],
27 override: true,
28};
29export const getHostHeaderPlugin = (options) => ({
30 applyToStack: (clientStack) => {
31 clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);
32 },
33});