Avatar

jdan

on a mission to give you superpowers. unsure how i feel about static types. https://jordanscales.com
Joined July 22, 2023
Public vals
97
jdan avatar
closedChocolateMarmoset
@jdan
HTTP (preview)
Forked from jdan/infoboxCrawler
jdan avatar
infoboxCrawler
@jdan
HTTP (preview)
Forked from jdan/emperorOfJapanCrawler
jdan avatar
emperorOfJapanCrawler
@jdan
HTTP (preview)
// This program crawls Wikipedia pages starting from an initial URL,
jdan avatar
dialog
@jdan
HTTP (preview)
dialog Renders windows 98 dialog boxes as SVGs. Using satori and styles from 98.css Usage https://jdan-dialog.web.val.run/? w =200& h =110& title =Hello& caption =World w (default: 200): the width of the dialog h (default: 110): the height of the dialog title (default: "{title}"): the text in the title bar caption (default: "{caption}"): the caption text
jdan avatar
grimPinkLimpet
@jdan
HTTP (preview)
// This approach will use the Notion API to update a block's color.
jdan avatar
emojiData
@jdan
Script
An interactive, runnable TypeScript val by jdan
jdan avatar
codePointNames
@jdan
Script
An interactive, runnable TypeScript val by jdan
jdan avatar
nameOfUnicode
@jdan
Script
Populated with the following: import { blob } from "https://esm.town/v/std/blob?v=12"; fetch("https://unicode.org/Public/UNIDATA/UnicodeData.txt").then(async function(response) { const text = await response.text(); const data = {}; text.split("\n").forEach((line) => { const [code, name] = line.split(";"); data[code] = name; }); await blob.setJSON("unicode_names", data); });
jdan avatar
emojiExploder
@jdan
HTTP
@jsxImportSource npm:hono@3/jsx
jdan avatar
gpt4o_images
@jdan
Script
An interactive, runnable TypeScript val by jdan
jdan avatar
honoBasicAuthMiddleware
@jdan
Script
honoBasicAuthMiddleware You should use https://hono.dev/middleware/builtin/basic-auth instead. Used to authenticate your HTTP vals build with Hono behind a username/password challenge. Browsers store this information alongside your other passwords. Usage In basicAuthButton , I secure two routes (one for viewing a value, one for updating it) behind a username/password combo stores in my Env variables. /** @jsxImportSource npm:hono@3/jsx */ import { honoBasicAuthMiddleware } from "https://esm.town/v/jdan/honoBasicAuthMiddleware"; import { blob } from "https://esm.town/v/std/blob?v=12"; import { Hono } from "npm:hono"; /** Authenticate the URL */ const secretUsername = Deno.env.get("BUTTON_USERNAME"); const secretPassword = Deno.env.get("BUTTON_PASSWORD"); app.use(honoBasicAuthMiddleware(secretUsername, secretPassword)); app.get("/", async (c) => { const lastPressed = await blob.getJSON(blobStorageKey) || "Never"; return c.html( <div> <h1>Last Pressed: {lastPressed}</h1> <form method="POST" action="/press"> <input type="submit" /> </form> </div>, ); });
jdan avatar
basicAuthButton
@jdan
HTTP
basicAuthButton An authenticated micro-app for tracking the last time I took a medication. Both GET / and POST /press are authenticated using honoBasicAuthMiddleware . GET / Views the value of basicAuthButton:last-pressed in blob storage. POST /press Updates the value of basicAuthButton:last-pressed in blob storage with the current timestamp.
jdan avatar
esmTown
@jdan
HTTP
Forked from jdan/blobImages
jdan avatar
wordsMatching
@jdan
Script
An interactive, runnable TypeScript val by jdan
jdan avatar
getAllWords
@jdan
Script
An interactive, runnable TypeScript val by jdan
jdan avatar
blobImages
@jdan
HTTP
Forked from jdan/emojiGuessr