async function saveImage()

in scripts/latest-news/index.js [62:94]


async function saveImage(index, imageUrl) {
	const url = new URL(imageUrl);

	const localFilePath = path.join(latestNewsDirectory, 'news-' + index + '.png');
	const relativePath = path.relative(projectRoot, localFilePath);

	if (fs.existsSync(relativePath)) fs.unlinkSync(relativePath);
	const fileStream = fs.createWriteStream(localFilePath);

	return new Promise((resolve, reject) => {
		const request = https.get(url, (response) => {
			if (response.statusCode !== 200) {
				reject(new Error(`Failed to download image. HTTP status code: ${response.statusCode}`));
				return;
			}

			response.pipe(fileStream);

			fileStream.on('finish', () => {
				fileStream.close();
				resolve(relativePath);
			});

			fileStream.on('error', (err) => {
				reject(err);
			});
		});

		request.on('error', reject);

		request.end();
	});
}