3import { email } from "https://esm.town/v/std/email";
4
5async function fetchStories(type: string, count: number) {
6 const response = await fetch(`https://hacker-news.firebaseio.com/v0/${type}stories.json`);
7 const storyIds = await response.json();
15}
16
17function createStoryHTML(story: any) {
18 return `
19 <li>
28}
29
30function createEmailContent(
31 topStories: any[],
32 newStories: any[],
118}
119
120export default async function server(req: Request) {
121 try {
122 const topStories = await fetchStories("top", 10);
1# Approximate the XOR function using netsaur
2
30 xor 0 = 0.003461432410404086 (should be close to 0)
3import { createRoot } from "https://esm.sh/react-dom/client";
4
5function App() {
6 const [activeButton, setActiveButton] = useState(null);
7
75}
76
77function client() {
78 createRoot(document.getElementById("root")).render(<App />);
79}
81if (typeof document !== "undefined") { client(); }
82
83export default async function server(request: Request): Promise<Response> {
84 return new Response(`
85 <!DOCTYPE html>
12const GRID_SIZE = 8;
13
14function App() {
15 const [audioEnabled, setAudioEnabled] = useState(false);
16 const [audioState, setAudioState] = useState("Initializing");
248}
249
250function client() {
251 createRoot(document.getElementById("root")).render(<App />);
252}
253if (typeof document !== "undefined") { client(); }
254
255export default async function server(request: Request): Promise<Response> {
256 return new Response(
257 `
25];
26
27function App() {
28 const [audioEnabled, setAudioEnabled] = useState(false);
29 const [timeline, setTimeline] = useState([]);
230}
231
232function client() {
233 createRoot(document.getElementById("root")).render(<App />);
234}
235if (typeof document !== "undefined") { client(); }
236
237export default async function server(request: Request): Promise<Response> {
238 return new Response(
239 `
17];
18
19function App() {
20 const [username, setUsername] = useState("stevekrouse");
21 const [contributionData, setContributionData] = useState(null);
323}
324
325function client() {
326 createRoot(document.getElementById("root")).render(<App />);
327}
328if (typeof document !== "undefined") { client(); }
329
330export default async function server(request: Request): Promise<Response> {
331 if (request.method === "POST" && new URL(request.url).pathname === "/contributions") {
332 const { username } = await request.json();
359}
360
361async function fetchGitHubContributions(username: string) {
362 const query = `
363 query($username: String!) {
8import _ from "npm:lodash@4";
9
10async function main(req: Request): Promise<Response> {
11 const { readable, writable } = new TransformStream();
12 const writer = writable.getWriter();
20 <script>
21 // Scroll to the bottom of the page when the page changes.
22 (new MutationObserver(function (mutationsList, observer) {
23 window.scrollTo({ left: 0, top: document.body.scrollHeight, behavior: "instant" });
24 })).observe(document, { childList: true, characterData: true, subtree: true });
47 Your response should start with \`\`\`ts and end with \`\`\`, so full code fences.
48 There should be no comments like "more content here", it should be complete and directly runnable.
49 The val should have an "export default async function main". The val should return a valid HTML website.
50 Prefer using Tailwind. Put frontend functions in a <script> tag, using dangerouslySetInnerHTML. Don't use Hono. Don't use Response.redirect.
51 `.replace("\n", " "),
52 },
6};
7
8export default async function(req: Request): Promise<Response> {
9 let key = new URL(req.url).pathname;
10 let url = await blob.getJSON(genKey(key));
5import { renderToString } from "npm:react-dom/server";
6
7function StatusRow({ rows }: { rows: any[] }) {
8 return (
9 <div className="w-full flex flex-col space-y-2">
28}
29
30function StatusSection({ url, rows }) {
31 const sectionRows = rows.filter(row => row[0] === url);
32 const percentUp = Math.round((sectionRows.filter(row => row[1]).length / sectionRows.length) * 100);
44}
45
46export default async function(req: Request): Promise<Response> {
47 const { rows } = await sqlite.execute(
48 "select url, ok, duration, timestamp from uptime order by timestamp desc limit 200",
1export function extractValInfo(url: string | URL) {
2 const { pathname, search } = new URL(url);
3 const [author, filename] = pathname.split("/").slice(-2);