async function resize()

in src/cloudConsole/cloudConsoleLauncher.ts [215:258]


async function resize(accessTokens: AccessTokens, terminalUri: string) {
	const token = resizeToken = {};
	await delay(300);

	for (let i = 0; i < 10; i++) {
		if (token !== resizeToken) {
			return;
		}

		const { cols, rows } = getWindowSize();
		// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
		const response = await request({
			uri: `${terminalUri}/size?cols=${cols}&rows=${rows}`,
			method: 'POST',
			headers: {
				'Accept': 'application/json',
				'Content-Type': 'application/json',
				'Authorization': `Bearer ${accessTokens.resource}`
			},
			simple: false,
			resolveWithFullResponse: true,
			json: true,
		});

		/* eslint-disable @typescript-eslint/no-unsafe-member-access */
		if (response.statusCode < 200 || response.statusCode > 299) {
			if (response.statusCode !== 503 && response.statusCode !== 504 && response.body && response.body.error) {
				if (response.body && response.body.error && response.body.error.message) {
					console.log(`${response.body.error.message} (${response.statusCode})`);
				} else {
					console.log(response.statusCode, response.headers, response.body);
				}
				break;
			}
			await delay(1000 * (i + 1));
			continue;
		}
		/* eslint-enable @typescript-eslint/no-unsafe-member-access */

		return;
	}

	console.log('Failed to resize terminal.');
}