Skip to content

Commit

Permalink
add more checks to try and get console errors
Browse files Browse the repository at this point in the history
  • Loading branch information
APJohns committed Jan 10, 2024
1 parent 65731bc commit b6a536d
Showing 1 changed file with 35 additions and 19 deletions.
54 changes: 35 additions & 19 deletions netlify/functions/collectCarbon.mts
Original file line number Diff line number Diff line change
Expand Up @@ -16,37 +16,46 @@ async function getCarbon(url: string, date: string): Promise<CarbonEntry> {
carbon: res.data.c,
percent: res.data.p
};
} catch (e) {
console.error(e);
} catch (error) {
console.error(error);
return {
date,
url,
carbon: -1,
percent: -1,
error: {
status: e.response.status,
statusText: e.response.statusText
status: error.response.status,
statusText: error.response.statusText
}
};
}
}

async function parseSitemap(): Promise<string[]> {
async function parseSitemap(): Promise<string[] | null> {
console.log('Parsing sitemap...');
const jsonPath = path.join(__dirname, '..', '..', '..', '..', '..', 'public', 'sitemap.xml');
const sitemap = fs.readFileSync(jsonPath, 'utf8');
const dom = new jsdom.JSDOM(sitemap, { contentType: 'application/xml' });
return Array.from(dom.window.document.querySelectorAll('loc'), (loc: Element) => loc.textContent || '');
try {
const jsonPath = path.join(__dirname, '..', '..', '..', '..', '..', 'public', 'sitemap.xml');
const sitemap = fs.readFileSync(jsonPath, 'utf8');
const dom = new jsdom.JSDOM(sitemap, { contentType: 'application/xml' });
return Array.from(dom.window.document.querySelectorAll('loc'), (loc: Element) => loc.textContent || '');
} catch (error) {
console.error(error);
return null;
}
}

async function collectData(): Promise<CarbonEntry[]> {
async function collectData(): Promise<CarbonEntry[] | null> {
console.log('Collecting data...');
const date = new Date().toISOString();
const urls = await parseSitemap();
console.log('Sitemap parsed', urls);
const filteredUrls = urls.map((url) => url.replace(/\/$/m, ''));
const promises = filteredUrls.map((url) => getCarbon(url, date));
return Array.from(await Promise.all(promises));
if (urls) {
const filteredUrls = urls.map((url) => url.replace(/\/$/m, ''));
const promises = filteredUrls.map((url) => getCarbon(url, date));
return Array.from(await Promise.all(promises));
} else {
return null;
}
}

const handler: Handler = async () => {
Expand All @@ -58,13 +67,20 @@ const handler: Handler = async () => {
const carbon = database.collection<CarbonEntry>('metrics');
const carbonData = await collectData();
console.log('Collected data', carbonData);
console.log('Inserting into DB...');
await carbon.insertMany(carbonData);
console.log('Inserted into DB');
return {
statusCode: 200
};
if (carbonData) {
console.log('Inserting into DB...');
await carbon.insertMany(carbonData);
console.log('Inserted into DB');
return {
statusCode: 200
};
} else {
return {
statusCode: 500
};
}
} catch (error) {
console.error(error);
return {
statusCode: 500
};
Expand Down

0 comments on commit b6a536d

Please sign in to comment.