53}
54
55export function fetchASP(id: string, server = "keyoxide.org") {
56 const url = new URL(`https://keyoxide.org/.well-known/aspe/id/${id}`);
57 url.hostname = server;
64});
65
66export default app.fetch;
8export default async () => {
9 // import vals
10 const fetchFns = [@std.fetch, @easrng.moduleFetch];
11 console.log(
12 await Promise.all(
13 fetchFns.map((fn) =>
14 fn("https://icanhazip.com").then((res) => res.text()),
15 ),
21});
22
23export default app.fetch;
103 tests[testID].status = "running";
104 setTests({ ...tests });
105 const resp = await fetch("/api/run", {
106 method: "POST",
107 body: JSON.stringify({
17 const query = c.req.query();
18
19 const code = await fetchValCode(`${params.author}/${params.name}`);
20 const imageURL = await createScreenshot(code, query.theme);
21 return Response.redirect(imageURL);
22});
23
24export default router.fetch;
25
26export async function createScreenshot(code: string, theme: string = "dark-plus"): Promise<URL> {
35}
36
37async function fetchValCode(alias: string): Promise<string> {
38 const prefixUrl = "https://api.val.town/v1/alias";
39 const { code } = await ky.get(alias, { prefixUrl }).json();
23 return [scope, html`${value}`];
24 } catch (e) {
25 console.log("could not fetch scope", scope, e);
26 }
27 })).then(res => Object.fromEntries(res.filter(Boolean)));
3export { Test } from "https://esm.town/v/pomdtr/test";
4
5export default router.fetch;
12}
13
14export default app.fetch;
11 const name = getValNameFromUrl(url).slice(1);
12
13 const res = await fetch(`https://api.val.town/v1/alias/${name}`, {
14 headers: {
15 authorization: `Bearer ${Deno.env.get("valtown")}`,
39 }
40
41 return fetch(url).then((res) => res.text()).then(text => {
42 moduleSourceCache.set(url, text);
43 return text;