export async function testObsoletes()

in tools/obsoletes.ts [64:98]


export async function testObsoletes(file: string, urlPrefix: string) {
	let errors: string = "";
	const needsRewriteOfObsolete =
		urlPrefix.indexOf("localhost") >= 0 || urlPrefix.indexOf("labs.jb.gg") >= 0;

	const obsoletes = fs.readFileSync(file, "utf8").split("\n");
	for (let i = 0; i < obsoletes.length; i++) {
		let obsolete = obsoletes[i];

		if (obsolete.startsWith("#")) continue;
		if (obsolete.length <= 2) continue;

		if (needsRewriteOfObsolete) {
			obsolete = obsolete
				.replace("/dotnet/guide", "/guide/dotnet")
				.replace("/go/guide", "/guide/go")
				.replace("/idea/guide", "/guide/idea")
				.replace("/pycharm/guide", "/guide/pycharm")
				.replace("/webstorm/guide", "/guide/webstorm");
		}

		const obsoleteUrl = urlPrefix.replace(/\/+$/, "") + obsolete;
		try {
			const response = await fetch(obsoleteUrl, { redirect: "manual" });
			if (response.status >= 400) {
				errors += response.status + " - " + obsoleteUrl + "\n";
			}
		} catch (e) {
			console.log(e);
			console.log(obsoleteUrl);
		}
	}

	if (errors.length > 0) throw errors;
}