Spaces:
Runtime error
Runtime error
| import { FastifyInstance, FastifyReply, FastifyRequest } from "fastify"; | |
| import fastifyReplyFrom from "@fastify/reply-from"; | |
| async function routes(server: FastifyInstance) { | |
| server.register(fastifyReplyFrom, { | |
| base: server.seleniumService.getSeleniumServerUrl(), | |
| }); | |
| server.all( | |
| "/selenium/wd/*", | |
| { schema: { hide: true } }, | |
| async (request: FastifyRequest, reply: FastifyReply) => { | |
| if (request.url === "/selenium/wd/session" && request.method === "POST") { | |
| const body = request.body as any; | |
| if (!body.capabilities) { | |
| body.capabilities = {}; | |
| } | |
| if (!body.capabilities.alwaysMatch) { | |
| body.capabilities.alwaysMatch = {}; | |
| } | |
| if (!body.capabilities.alwaysMatch["goog:chromeOptions"]) { | |
| body.capabilities.alwaysMatch["goog:chromeOptions"] = {}; | |
| } | |
| if (!body.capabilities.alwaysMatch["goog:chromeOptions"].args) { | |
| body.capabilities.alwaysMatch["goog:chromeOptions"].args = []; | |
| } | |
| const chromeArgs = await server.seleniumService.getChromeArgs(); | |
| body.capabilities.alwaysMatch["goog:chromeOptions"].args.push(...chromeArgs); | |
| request.body = body; | |
| return reply.from("/session", { | |
| body, | |
| rewriteHeaders(headers, request) { | |
| headers["content-type"] = "application/json; charset=utf-8"; | |
| headers["accept"] = "application/json; charset=utf-8"; | |
| return headers; | |
| }, | |
| rewriteRequestHeaders(request, headers) { | |
| headers["content-type"] = "application/json; charset=utf-8"; | |
| headers["accept"] = "application/json; charset=utf-8"; | |
| return headers; | |
| }, | |
| }); | |
| } | |
| return reply.from(request.url.replace("/selenium/wd", ""), { | |
| body: request.body, | |
| rewriteRequestHeaders(request, headers) { | |
| headers["content-type"] = "application/json; charset=utf-8"; | |
| headers["accept"] = "application/json; charset=utf-8"; | |
| return headers; | |
| }, | |
| rewriteHeaders(headers, request) { | |
| headers["content-type"] = "application/json; charset=utf-8"; | |
| headers["accept"] = "application/json; charset=utf-8"; | |
| return headers; | |
| }, | |
| }); | |
| }, | |
| ); | |
| } | |
| export default routes; | |