15];
16
17function App() {
18 const [noClicks, setNoClicks] = useState(0);
19 const [isValentine, setIsValentine] = useState(false);
102}
103
104function client() {
105 createRoot(document.getElementById("root")).render(<App />);
106}
107if (typeof document !== "undefined") { client(); }
108
109export default async function server(request: Request): Promise<Response> {
110 return new Response(
111 `
22];
23
24function App() {
25 const [noClicks, setNoClicks] = useState(0);
26 const [isValentine, setIsValentine] = useState(false);
107}
108
109function client() {
110 createRoot(document.getElementById("root")).render(<App />);
111}
112if (typeof document !== "undefined") { client(); }
113
114export default async function server(request: Request): Promise<Response> {
115 return new Response(
116 `
13];
14
15function App() {
16 const [noClicks, setNoClicks] = useState(0);
17 const [isValentine, setIsValentine] = useState(false);
99}
100
101function client() {
102 createRoot(document.getElementById("root")).render(<App />);
103}
104if (typeof document !== "undefined") { client(); }
105
106export default async function server(request: Request): Promise<Response> {
107 return new Response(
108 `
15];
16
17function App() {
18 const [noClicks, setNoClicks] = useState(0);
19 const [isValentine, setIsValentine] = useState(false);
102}
103
104function client() {
105 createRoot(document.getElementById("root")).render(<App />);
106}
107if (typeof document !== "undefined") { client(); }
108
109export default async function server(request: Request): Promise<Response> {
110 return new Response(
111 `
3let { parse } = await import("npm:node-html-parser");
4
5export async function fetchSources(sources: string[], descMaxLength: number, sinceDate: Date) {
6 let data = [];
7 for (const source of sources) {
12}
13
14async function fetchSource(url: string, sinceDate: Date, descMaxLength: number) {
15 console.log(`fetch: ${url}`);
16
17 function parseDescription(description: string, maxlength: number) {
18 const desc = parse(description);
19 const summary = desc.querySelectorAll(".field--type-text-with-summary");
16];
17
18function App() {
19 const [noClicks, setNoClicks] = useState(0);
20 const [isValentine, setIsValentine] = useState(false);
102}
103
104function client() {
105 createRoot(document.getElementById("root")).render(<App />);
106}
107if (typeof document !== "undefined") { client(); }
108
109export default async function server(request: Request): Promise<Response> {
110 return new Response(
111 `
23];
24
25function App() {
26 const [noClicks, setNoClicks] = useState(0);
27 const [isValentine, setIsValentine] = useState(false);
108}
109
110function client() {
111 createRoot(document.getElementById("root")).render(<App />);
112}
113if (typeof document !== "undefined") { client(); }
114
115export default async function server(request: Request): Promise<Response> {
116 return new Response(
117 `
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
20];
21
22function App() {
23 const [noClicks, setNoClicks] = useState(0);
24 const [isValentine, setIsValentine] = useState(false);
217}
218
219function client() {
220 createRoot(document.getElementById("root")).render(<App />);
221}
222if (typeof document !== "undefined") { client(); }
223
224export default async function server(request: Request): Promise<Response> {
225 return new Response(
226 `
13];
14
15function App() {
16 const [noClicks, setNoClicks] = useState(0);
17 const [isValentine, setIsValentine] = useState(false);
98}
99
100function client() {
101 createRoot(document.getElementById("root")).render(<App />);
102}
103if (typeof document !== "undefined") { client(); }
104
105export default async function server(request: Request): Promise<Response> {
106 return new Response(
107 `
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.