Skip to content

Commit

Permalink
ticket-1041 added script for checking all links on bloom website (#1066)
Browse files Browse the repository at this point in the history
  • Loading branch information
ckirby19 committed Aug 1, 2024
1 parent 4062092 commit 6541f58
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@
"test:watch": "jest --watch",
"cypress": "cypress open",
"cypress:headless": "cypress run --headless true --browser chrome",
"check:translations": "node ./scripts/checkTranlation.js",
"check:translations": "node ./scripts/checkTranslation.js",
"check:links": "node ./scripts/checkLinks.mjs",
"postinstall": "husky",
"prepare": "husky"
},
Expand Down
51 changes: 51 additions & 0 deletions scripts/checkLinks.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import jsdom from 'jsdom';

const getLinks = async (baseUrl) => {
console.log(`Checking links for ${baseUrl}`);
const urlsToCheck = [baseUrl];
const checkedInternalUrls = new Set();
const deadExternalUrls = new Set();
const liveExternalUrls = new Set();

const isNewURL = (url) =>
!deadExternalUrls.has(url.href) &&
!liveExternalUrls.has(url.href) &&
!checkedInternalUrls.has(url.href);

while (urlsToCheck.length !== 0) {
var internalUrl = urlsToCheck.pop();
checkedInternalUrls.add(internalUrl);

var dom = await jsdom.JSDOM.fromURL(internalUrl);

var document = dom.window.document;

var linksFromSite = document.getElementsByTagName('a');
for (var urlIndex in linksFromSite) {
var url = linksFromSite[urlIndex];
if (url.href && url.href.indexOf('://') !== -1 && isNewURL(url.href)) {
var isExternalLink = url.host !== dom.window.location.host;

if (isExternalLink) {
var response = await fetch(url.href);
response.ok ? liveExternalUrls.add(url.href) : deadExternalUrls.add(url.href);
} else if (!checkedInternalUrls.has(url.href)) {
urlsToCheck.push(url.href);
checkedInternalUrls.add(url.href);
}
}
}
}

return {
InternalUrls: checkedInternalUrls,
DeadExternalUrls: deadExternalUrls,
LiveExternalUrls: liveExternalUrls,
};
};

var checkedUrls = await getLinks('https://bloom.chayn.co/');

console.log('Internal URLs examined', checkedUrls.InternalUrls);
console.log('Dead external URLs', checkedUrls.DeadExternalUrls);
console.log('Live external URLs', checkedUrls.LiveExternalUrls);
File renamed without changes.

0 comments on commit 6541f58

Please sign in to comment.