This repository has been archived on 2026-03-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-extensions/wecom/node_modules/@aws-sdk/middleware-websocket/dist-es/middlewares/websocketEndpointMiddleware.js
T

32 lines
1.2 KiB
JavaScript

import { HttpRequest } from "@smithy/protocol-http";
export const websocketEndpointMiddleware = (config, options) => (next) => (args) => {
const { request } = args;
if (HttpRequest.isInstance(request) &&
config.requestHandler.metadata?.handlerProtocol?.toLowerCase().includes("websocket")) {
request.protocol = "wss:";
request.method = "GET";
request.path = `${request.path}-websocket`;
const { headers } = request;
delete headers["content-type"];
delete headers["x-amz-content-sha256"];
for (const name of Object.keys(headers)) {
if (name.indexOf(options.headerPrefix) === 0) {
const chunkedName = name.replace(options.headerPrefix, "");
request.query[chunkedName] = headers[name];
}
}
if (headers["x-amz-user-agent"]) {
request.query["user-agent"] = headers["x-amz-user-agent"];
}
request.headers = { host: headers.host ?? request.hostname };
}
return next(args);
};
export const websocketEndpointMiddlewareOptions = {
name: "websocketEndpointMiddleware",
tags: ["WEBSOCKET", "EVENT_STREAM"],
relation: "after",
toMiddleware: "eventStreamHeaderMiddleware",
override: true,
};