15
16export default async function(interval: Interval) {
17 const response = await fetch(dictionaryUrl);
18 const { features } = await response.json();
19 const featuresAboveConfidenceThreshold = features.filter(
1import { email } from "https://esm.town/v/std/email";
2import { fetch } from "https://esm.town/v/std/fetch";
3
4import process from "node:process";
43 ORDER BY isVisitor, isVisit ASC
44 `;
45 let result = await fetch(url, {
46 headers: {
47 "Authorization": `Bearer ${apiKey}`,
1import { fetch } from "https://esm.town/v/std/fetch";
2
3export async function uploadTo0x0(data, name) {
6 formData.append("file", blob, name);
7 formData.append("expires", "1");
8 const response = await fetch("https://0x0.st", {
9 method: "POST",
10 body: formData,
16});
17
18export default app.fetch;
7Currently (as of 4/14/24) this only works for small files (< 1mb). For larger files you get an error: `{"statusCode":413,"error":"Payload Too Large","message":"request entity too large"}`.
8
9A workaround is to upload to another service client-side, send the URL from that service to your Val Town server, and then fetch the file server-side (helper: @stevekrouse/uploadTo0x0).
10
11Migrated from folder: Archive/fileInputUploadExample
45 });
46 }
47 const user = fetch("https://pomdtr-indielogin.web.val.run", {
48 method: "POST",
49 headers: {
61});
62
63export default app.fetch;
7const app = new Hono();
8
9export default app.fetch;
1import { prettifyHtml } from "https://esm.town/v/neverstew/prettifyHtml";
2import { fetchText } from "https://esm.town/v/stevekrouse/fetchText?v=6";
3import { escape } from "npm:html-sloppy-escaper";
4
5export default async function viewSource(req: Request) {
6 const pathname = new URL(req.url).pathname;
7 const html = await fetchText(
8 pathname === "/"
9 ? "https://www.flipkart.com/peter-england-analog-watch-men/p/itmabb4bc1893d05?pid=WATG6YGDUYAUEEMB&cmpid=product.share.pp&_refId=PP.d1a88903-d859-42ee-bc23-aad0425688fb.WATG6YGDUYAUEEMB&_appId=WA"
466
467/**
468 * Wrapper for fetch that traces the request. It also passes a propagation header
469 * so if you are calling another val that uses traced_handler their traces will
470 * be tied together.
471 */
472export async function fetch(
473 input: string | URL,
474 init?: RequestInit,
475): Promise<Response> {
476 return await tracer().startActiveSpan(`fetch`, async (span) => {
477 const prop_output: { b3: string } = { b3: "" };
478 propagation.inject(context.active(), prop_output);
479 try {
480 const resp: Response = await globalThis.fetch(input, {
481 ...init,
482 headers: {
1248export async function traceViewer(req: Request): Promise<Response> {
1249 await migrate();
1250 return await app.fetch(req);
1251}
1252
77```
78
79* `fetch` is a traced version of the builtin `fetch` function that traces the request. Just import it and use it like you would use `fetch`.
80
81* `sqlite` is a traced version of the val town sqlite client. Just import it and use it like you would use [https://www.val.town/v/std/sqlite](https://www.val.town/v/std/sqlite)