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);
});
},