UNPKG

slack-edge

Version:

Slack app development framework for edge functions with streamlined TypeScript support

53 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromSocketModeToRequest = fromSocketModeToRequest; exports.fromResponseToSocketModePayload = fromResponseToSocketModePayload; /** * Converts a raw Socket Mode message data to slack-edge's request data. * @param message Socket Mode message data * @returns slack-edge's request representation */ function fromSocketModeToRequest({ url, body, retryNum, retryReason }) { if (!body) { return undefined; } const payload = JSON.stringify(body); const headers = { "content-type": "application/json", }; if (retryNum) { headers["x-slack-retry-num"] = retryNum; } if (retryReason) { headers["x-slack-retry-reason"] = retryReason; } const options = { method: "POST", headers: new Headers(headers), body: new Blob([payload]).stream(), duplex: "half", // required when running on Node.js runtime }; return new Request(url ?? "wss://localhost", options); } /** * Converts slack-edge's response representation to a Socket Mode message. * @param response slack-edge's response representation * @returns WebSocket message data */ async function fromResponseToSocketModePayload({ response }) { let message = {}; if (response.body) { const contentType = response.headers.get("Content-Type"); if (contentType && contentType.startsWith("text/plain")) { const text = await response.text(); if (text) { message = { text }; } } else { message = await response.json(); } } return message; } //# sourceMappingURL=payload-handler.js.map