-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathworker-scripts.js
More file actions
55 lines (49 loc) · 1.57 KB
/
worker-scripts.js
File metadata and controls
55 lines (49 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
// Fetch GitHub profile data from GitHub API
const githubUsername = "your-github-username"; // Replace with your GitHub username
const githubApiUrl = `https://api.github.com/users/${githubUsername}`;
let githubData;
try {
const response = await fetch(githubApiUrl);
if (!response.ok) {
throw new Error("GitHub API request failed");
}
githubData = await response.json();
} catch (error) {
return new Response(JSON.stringify({
message: "Error fetching GitHub data",
status: "error",
error: error.message
}), {
headers: {
'content-type': 'application/json',
'Cache-Control': 'no-cache'
},
});
}
// Dynamic JSON response with GitHub profile data
const responseData = {
message: "Hello from Cloudflare Worker!",
status: "success",
timestamp: new Date().toISOString(),
github_profile: {
username: githubData.login,
name: githubData.name,
bio: githubData.bio,
public_repos: githubData.public_repos,
followers: githubData.followers,
following: githubData.following,
avatar_url: githubData.avatar_url,
html_url: githubData.html_url,
},
};
return new Response(JSON.stringify(responseData), {
headers: {
'content-type': 'application/json',
'Cache-Control': 'no-cache'
},
});
}