MCPcopy Index your code
hub / github.com/inkeep/open-knowledge / startDualLoopbackUpstream

Function startDualLoopbackUpstream

packages/cli/src/commands/ui.test.ts:162–196  ·  view source on GitHub ↗
(
  handler: Parameters<typeof createHttpServer>[1],
)

Source from the content-addressed store, hash-verified

160type UpstreamSurrogate = { port: number; close: () => Promise<void> };
161
162async function startDualLoopbackUpstream(
163 handler: Parameters<typeof createHttpServer>[1],
164): Promise<UpstreamSurrogate> {
165 const v6 = createHttpServer(handler);
166 await new Promise<void>((done, fail) => {
167 v6.once('error', fail);
168 v6.listen(0, '::1', () => {
169 v6.off('error', fail);
170 done();
171 });
172 });
173 const port = (v6.address() as { port: number }).port;
174 const v4 = createHttpServer(handler);
175 try {
176 await new Promise<void>((done, fail) => {
177 v4.once('error', fail);
178 v4.listen(port, '127.0.0.1', () => {
179 v4.off('error', fail);
180 done();
181 });
182 });
183 } catch (err) {
184 await new Promise<void>((r) => v6.close(() => r()));
185 throw err;
186 }
187 return {
188 port,
189 close: async () => {
190 await Promise.all([
191 new Promise<void>((r) => v6.close(() => r())),
192 new Promise<void>((r) => v4.close(() => r())),
193 ]);
194 },
195 };
196}
197
198describe('resolveRequestedPort', () => {
199 test('default is DEFAULT_UI_PORT with kernel-allocated fallback', () => {

Callers 1

ui.test.tsFile · 0.85

Calls 6

onceMethod · 0.65
listenMethod · 0.65
offMethod · 0.65
addressMethod · 0.65
closeMethod · 0.65
doneFunction · 0.50

Tested by

no test coverage detected