MCPcopy
hub / github.com/axios/axios / startHTTPServer

Function startHTTPServer

tests/setup/server.js:20–109  ·  tests/setup/server.js::startHTTPServer
(handlerOrOptions, options)

Source from the content-addressed store, hash-verified

18};
19
20export const startHTTPServer = async (handlerOrOptions, options) => {
21 const certificate = await certificatePromise;
22
23 const {
24 handler,
25 useBuffering = false,
26 rate = undefined,
27 class="cm">// Default to 0 so the OS assigns a free ephemeral port. Tests that need
28 class="cm">// a deterministic port can still pass one explicitly. Sharing a fixed
29 class="cm">// port across many tests creates TIME_WAIT / pool-reuse races that
30 class="cm">// surface as EPIPE on the client under CI runner load.
31 port = 0,
32 keepAlive = 1000,
33 useHTTP2,
34 key = certificate.private,
35 cert = certificate.cert,
36 } = Object.assign(
37 typeof handlerOrOptions === class="st">'function'
38 ? {
39 handler: handlerOrOptions,
40 }
41 : handlerOrOptions || {},
42 options
43 );
44
45 return new Promise((resolve, reject) => {
46 const serverHandler =
47 handler ||
48 async function (req, res) {
49 try {
50 req.headers[class="st">'content-length'] &&
51 res.setHeader(class="st">'content-length', req.headers[class="st">'content-length']);
52
53 let dataStream = req;
54
55 if (useBuffering) {
56 dataStream = stream.Readable.from(await getStream(req));
57 }
58
59 const streams = [dataStream];
60
61 if (rate) {
62 streams.push(new Throttle({ rate }));
63 }
64
65 streams.push(res);
66
67 stream.pipeline(streams, (err) => {
68 err && console.log(class="st">'Server warning: ' + err.message);
69 });
70 } catch (err) {
71 console.warn(class="st">'HTTP server error:', err);
72 }
73 };
74
75 const server = useHTTP2
76 ? http2.createSecureServer({ key, cert }, serverHandler)
77 : http.createServer(serverHandler);

Callers 4

query.test.jsFile · 0.90
http.test.jsFile · 0.90
fetch.test.jsFile · 0.90
startTestServerFunction · 0.85

Calls 4

setHeaderMethod · 0.80
deleteMethod · 0.80
destroyMethod · 0.80
fromMethod · 0.45

Tested by

no test coverage detected