summaryrefslogtreecommitdiff
path: root/examples/hackernews/src/lib/api.ts
blob: 61fc2f9abc0f6f74814af23faefd4c47d883f604 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
const story = (path: string) => `https://node-hnapi.herokuapp.com/${path}`;
const user = (path: string) => `https://hacker-news.firebaseio.com/v0/${path}.json`;

export default async function fetchAPI(path: string) {
	const url = path.startsWith('user') ? user(path) : story(path);
	const headers = { 'User-Agent': 'chrome' };

	try {
		let response = await fetch(url, { headers });
		let text = await response.text();
		try {
			if (text === null) {
				return { error: 'Not found' };
			}
			return JSON.parse(text);
		} catch (e) {
			console.error(`Recevied from API: ${text}`);
			console.error(e);
			return { error: e };
		}
	} catch (error) {
		return { error };
	}
}
tions'>+16 2022-04-04Update response.zigGravatar Jarred Sumner 1-1/+1 2022-04-04Update DockerfileGravatar Jarred Sumner 1-1/+17 2022-04-04Update tsconfig.jsonGravatar Jarred Sumner 1-0/+2 2022-04-04Update launch.jsonGravatar Jarred Sumner 1-0/+12 2022-04-04Update http-file.tsGravatar Jarred Sumner 1-3/+3 2022-04-04fix httpsGravatar Jarred Sumner 4-40/+109 2022-04-04Update bun.d.tsGravatar Jarred Sumner 1-5/+14 2022-04-04Fix error in bun:errorGravatar Jarred Sumner 1-1/+1 2022-04-04Add a couple more testsGravatar Jarred Sumner 1-0/+27 2022-04-04Make `Bun.file()` -> HTMLRewriter -> HTTP response workGravatar Jarred Sumner 5-72/+222 2022-04-04[bun] Don't allow `Transfer-Encoding` headerGravatar Jarred Sumner 1-0/+2 2022-04-04[bun.js] Improve error message for HTTP serverGravatar Jarred Sumner 1-4/+4 2022-04-04[bun.js] Support truncating file length up to u52Gravatar Jarred Sumner 1-7/+7