summaryrefslogtreecommitdiff
path: root/examples/hackernews/src/lib/api.ts
blob: 49fd0c333a7fefbea78e5eac767f8a61ea81359c (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(`Received from API: ${text}`);
			console.error(e);
			return { error: e };
		}
	} catch (error) {
		return { error };
	}
}
0000'>2022-04-06[ci] formatGravatar matthewp 1-32/+32 2022-04-06[ci] release (beta) (#3005)astro@1.0.0-beta.3Gravatar github-actions[bot] 31-88/+98 2022-04-06Fixes dynamic API routes in SSR (#3006)Gravatar Matthew Phillips 4-1/+26 2022-04-06[ci] formatGravatar tony-sull 1-1/+1 2022-04-06fix(#2981): keeps `astro preview` server alive (#3004)Gravatar Tony Sullivan 3-1/+17 2022-04-06Update readme.mdGravatar Nate Moore 1-2/+3 2022-04-06[ci] collect statsGravatar FredKSchott 1-0/+1 2022-04-05[ci] formatGravatar matthewp 1-1/+1 2022-04-05[ci] release (beta) (#2997)@astrojs/netlify@0.1.1-beta.0Gravatar github-actions[bot] 3-2/+9 2022-04-05Docs: netlify adapter site requirement (#2996)Gravatar Ben Holmes 3-4/+23 2022-04-05[ci] collect statsGravatar FredKSchott 1-0/+1 2022-04-05[ci] formatGravatar FredKSchott 1-32/+32 2022-04-04[ci] release (beta) (#2992)astro@1.0.0-beta.2Gravatar github-actions[bot] 31-87/+94