MCPcopy Create free account
hub / github.com/Snapchat/Valdi / startDebugServer

Function startDebugServer

valdi/vscode_debugger/src/debugServer.ts:86–127  ·  view source on GitHub ↗
(port: number)

Source from the content-addressed store, hash-verified

84}
85
86export function startDebugServer(port: number): Promise<IDisposable> {
87 return new Promise((resolve, reject) => {
88 const server = net
89 .createServer(async socket => {
90 const services = createTopLevelSessionContainer(
91 createGlobalContainer({ storagePath, isVsCode: false }),
92 );
93 const binderDelegate: IBinderDelegate = {
94 async acquireDap(): Promise<DapConnection> {
95 // Note: we can make multi-session work through custom dap message:
96 // - spin up a separate server for this session;
97 // - ask ui part to create a session for us and connect to the port;
98 // - marshall target name changes across.
99 return connection;
100 },
101
102 async initAdapter(debugAdapter: DebugAdapter): Promise<boolean> {
103 await configurator.configure(debugAdapter);
104 return true;
105 },
106
107 releaseDap(): void {
108 // no-op
109 },
110 };
111
112 const transport = new StreamDapTransport(socket, socket, services.get(ILogger));
113 const connection = new DapConnection(transport, services.get(ILogger));
114 new Binder(binderDelegate, connection, services, new TargetOrigin('targetOrigin'));
115 const configurator = new Configurator(connection.dap());
116 })
117 .on('error', reject)
118 .listen(port, () => {
119 console.log(`Debug server listening at ${(server.address() as net.AddressInfo).port}`);
120 resolve({
121 dispose: () => {
122 server.close();
123 },
124 });
125 });
126 });
127}

Callers 1

debugServerMain.tsFile · 0.90

Calls 9

createGlobalContainerFunction · 0.90
dapMethod · 0.80
addressMethod · 0.80
onMethod · 0.65
getMethod · 0.65
logMethod · 0.65
closeMethod · 0.65
resolveFunction · 0.50

Tested by

no test coverage detected