Archived
1
0

Prefer matching editor sessions when opening files. (#6191)

Signed-off-by: Sean Lee <freshdried@gmail.com>
This commit is contained in:
Sean Lee
2023-06-14 17:32:07 -04:00
committed by GitHub
parent ccb0d3a34f
commit fb73742b2b
9 changed files with 786 additions and 131 deletions

View File

@ -150,3 +150,52 @@ export function getMaybeProxiedPathname(url: URL): string {
return url.pathname
}
interface FakeVscodeSockets {
/* If called, closes all servers after the first connection. */
once(): FakeVscodeSockets
/* Manually close all servers. */
close(): Promise<void>
}
/**
* Creates servers for each socketPath specified.
*/
export function listenOn(...socketPaths: string[]): FakeVscodeSockets {
let once = false
const servers = socketPaths.map((socketPath) => {
const server = net.createServer(() => {
if (once) {
close()
}
})
server.listen(socketPath)
return server
})
async function close() {
await Promise.all(
servers.map(
(server) =>
new Promise<void>((resolve, reject) => {
server.close((err) => {
if (err) {
reject(err)
return
}
resolve()
})
}),
),
)
}
const fakeVscodeSockets = {
close,
once: () => {
once = true
return fakeVscodeSockets
},
}
return fakeVscodeSockets
}