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();
});
}