start()

in packages/dubbo-node-test/src/helpers/testserver.ts [177:218]


      start(port = 0) {
        return new Promise<void>((resolve) => {
          const corsHeaders = {
            "Access-Control-Allow-Origin": "*", // caution with this
            "Access-Control-Allow-Methods": cors.allowedMethods.join(","),
            "Access-Control-Allow-Headers": [
              ...cors.allowedHeaders,
              // used in tests
              "X-Grpc-Test-Echo-Initial",
              "X-Grpc-Test-Echo-Trailing-Bin",
              "Request-Protocol",
              "Get-Request",
            ].join(", "),
            "Access-Control-Expose-Headers": [
              ...cors.exposedHeaders,
              "X-Grpc-Test-Echo-Initial",
              "X-Grpc-Test-Echo-Trailing-Bin",
              "Trailer-X-Grpc-Test-Echo-Trailing-Bin", // unary trailer in Connect
              "Request-Protocol",
              "Get-Request",
            ],
            "Access-Control-Max-Age": 2 * 3600,
          };
          const serviceHandler = connectNodeAdapter({
            routes: testRoutes,
            requireConnectProtocolHeader: true,
          });
          nodeHttpServer = http
            .createServer({}, (req, res) => {
              if (req.method === "OPTIONS") {
                res.writeHead(204, corsHeaders);
                res.end();
                return;
              }
              for (const [k, v] of Object.entries(corsHeaders)) {
                res.setHeader(k, v);
              }
              serviceHandler(req, res);
            })
            .listen(port, resolve);
        });
      },