in src/cloudConsole/cloudConsoleLauncher.ts [325:366]
export function main() {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
process.stdin.setRawMode!(true);
process.stdin.resume();
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const ipcHandle = process.env.CLOUD_CONSOLE_IPC!;
(async () => {
void sendData(ipcHandle, JSON.stringify([ { type: 'size', size: getWindowSize() } ]));
let res: http.IncomingMessage;
// eslint-disable-next-line no-cond-assign
while (res = await sendData(ipcHandle, JSON.stringify([ { type: 'poll' } ]))) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
for (const message of await readJSON<any>(res)) {
/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment */
if (message.type === 'log') {
console.log(...message.args);
} else if (message.type === 'connect') {
try {
const accessTokens: AccessTokens = message.accessTokens;
const consoleUris: ConsoleUris = message.consoleUris;
connectSocket(ipcHandle, consoleUris.socketUri);
process.stdout.on('resize', () => {
resize(accessTokens, consoleUris.terminalUri)
.catch(console.error);
});
} catch(err) {
console.error(err);
sendData(ipcHandle, JSON.stringify([ { type: 'status', status: 'Disconnected' } ]))
.catch(err => {
console.error(err);
});
}
} else if (message.type === 'exit') {
process.exit(message.code);
}
/* eslint-enable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment */
}
}
})()
.catch(console.error);
}