12}).partial();
13
14async function getBody(req: Request): Promise<Object> {
15 try {
16 return await req.json();
23}
24
25export default async function(req: Request): Promise<Response> {
26 const searchParams = new URL(req.url).searchParams;
27
4
5const JSDOM = jsdom.JSDOM;
6export default async function getMetadata(url) {
7 // Do we have a URL?
8 if (url == null || url.trim() == "") {
23}
24
25function getImageUrl(frag, url) {
26 let imgUrl = "";
27 let selectors = [
65}
66
67async function getImageDataFromUrl(url) {
68 const response = await fetch(url);
69 const base64data = Buffer.from(await response.arrayBuffer()).toString("base64");
71}
72
73function getTitle(frag) {
74 let element;
75 let title = "";
99}
100
101function getDescription(frag) {
102 let element;
103 let description = "";
1// Fetches a random joke.
2function fetchRandomJoke() {
3 const response = fetch(
4 "https://official-joke-api.appspot.com/random_joke",
6 return response;
7}
8function fetchRandomJoke() {
9 const SAMPLE_JOKE = {
10 "setup": "What do you call a group of disorganized cats?",
22
23// Fetches a random joke.
24function fetchRandomJoke() {
25 const SAMPLE_JOKE = {
26 "setup": "What do you call a group of disorganized cats?",
41
42// Fetches a random joke.
43async function fetchRandomJoke() {
44 const response = await fetch(
45 "https://official-joke-api.appspot.com/random_joke",
2
3// Fetches a random joke.
4async function fetchRandomJoke() {
5 const response = await fetch(
6 "https://official-joke-api.appspot.com/random_joke",
1import { email } from "https://esm.town/v/std/email?v=9";
2
3async function fetchRandomJoke() {
4 const response = await fetch(
5 "https://official-joke-api.appspot.com/random_joke",
13await persister.startAutoSave();
14
15function App() {
16 // The component will be refreshed each time the store is updated
17 const count = useValue("count", store);
15}
16
17export function HttpClient(props: {
18 bookmarks: Bookmark[];
19 history: HistoryItem[];
150}
151
152export function RequestList(props: {
153 title: string;
154 onClear?: () => void;
174}
175
176function RequestInput(props: {
177 isLoading?: boolean;
178 request: Request;
310}
311
312function RequestTab(props: {
313 selected: boolean;
314 onSelect: () => void;
334}
335
336function ResponseOutput(props: { response: Response }) {
337 return (
338 <div class="flex flex-col gap-y-2">
571};
572
573async function serializeRequest(request: Request): Promise<SerializedRequest> {
574 return {
575 url: request.url,
580}
581
582function deserializeRequest(request: SerializedRequest): Request {
583 return new Request(request.url, {
584 method: request.method,
593};
594
595function loadHistory() {
596 try {
597 return JSON.parse(localStorage.getItem("history") || "[]").map(
8 const jsonBtn = document.getElementById("download-json");
9
10 function selectStatementFromPosition(statements, pos) {
11 for (const statement of statements) {
12 if (statement.end + 1 >= pos) return statement;
15 }
16
17 function getCode(): string {
18 // @ts-expect-error
19 const code = editor.code;
33- [x] fix wonky sidebar separator height problem (thanks to @stevekrouse)
34- [x] make result tables scrollable
35- [x] add export to CSV, and JSON (CSV and JSON helper functions written in [this val](https://www.val.town/v/nbbaier/sqliteExportHelpers). Thanks to @pomdtr for merging the initial version!)
36- [x] add listener for cmd+enter to submit query
37
8 const jsonBtn = document.getElementById("download-json");
9
10 function selectStatementFromPosition(statements, pos) {
11 for (const statement of statements) {
12 if (statement.end + 1 >= pos) return statement;
15 }
16
17 function getCode(): string {
18 // @ts-expect-error
19 const code = editor.code;
Simple functional CSS library for Val Town
A helper function to build a file's email
import { OpenAI } from "https://esm.town/v/std/openai";
export default async function(req: Request): Promise<Response> {
if (req.method === "OPTIONS") {
return new Response(null, {
headers: {
"Access-Control-Allow-Origin": "*",
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.