Search
![stevekrouse avatar](https://images.clerk.dev/uploaded/img_2PqHa2Gsy93xQrjh2w78Xu0cChW.jpeg)
passionateBeigeButterfly
@stevekrouse
SQLite Explorer View and interact with your Val Town SQLite data. It's based off Steve's excellent SQLite Admin val, adding the ability to run SQLite queries directly in the interface. This new version has a revised UI and that's heavily inspired by LibSQL Studio by invisal . This is now more an SPA, with tables, queries and results showing up on the same page. Install Install the latest stable version (v86) by forking this val: Authentication Login to your SQLite Explorer with password authentication with your Val Town API Token as the password. Todos / Plans [ ] improve error handling [ ] improve table formatting [ ] sticky table headers [x] add codemirror [ ] add loading indication to the run button (initial version shipped) [ ] add ability to favorite queries [ ] add saving of last query run for a table (started) [ ] add visible output for non-query statements [ ] add schema viewing [ ] add refresh to table list sidebar after CREATE/DROP/ALTER statements [ ] add automatic execution of initial select query on double click [x] add views to the sidebar [ ] add triggers to sidebar [ ] add upload from SQL, CSV and JSON [ ] add ability to connect to a non-val town Turso database [x] fix wonky sidebar separator height problem (thanks to @stevekrouse) [x] make result tables scrollable [x] add export to CSV, and JSON (CSV and JSON helper functions written in this val . Thanks to @pomdtr for merging the initial version!) [x] add listener for cmd+enter to submit query
HTTP
- [x] make result tables scrollable
- [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!)
- [x] add listener for cmd+enter to submit query
![HungQu2 avatar](https://images.clerk.dev/oauth_github/img_2RPLzlpLMeQmR2aYmmvD8Db6O7G.jpeg)
myApi
@HungQu2
An interactive, runnable TypeScript val by HungQu2
Cron
export function myApi(name) {
return "hi " + name;
myApi
@lstyr
An interactive, runnable TypeScript val by lstyr
Script
export function myApi(name) {
return "hi " + name;
blobCommentsReact
@keenanzucker
@jsxImportSource https://esm.sh/react
HTTP
import { renderToReadableStream } from "https://esm.sh/react-dom/server";
import { blob } from "https://esm.town/v/std/blob?v=10";
function App() {
const [data, setData] = useState();
useEffect(() => {
async function fetchSchedule() {
await fetch("/schedule")
.then(response => {
![parkerdavis avatar](https://images.clerk.dev/oauth_github/img_2SgISwmbSniQlqgSOAgRqsgUv0o.png)
sqliteExplorerApp
@parkerdavis
SQLite Explorer View and interact with your Val Town SQLite data. It's based off Steve's excellent SQLite Admin val, adding the ability to run SQLite queries directly in the interface. This new version has a revised UI and that's heavily inspired by LibSQL Studio by invisal . This is now more an SPA, with tables, queries and results showing up on the same page. Install Install the latest stable version (v66) by forking this val: Authentication Login to your SQLite Explorer with password authentication with your Val Town API Token as the password. Todos / Plans [ ] improve error handling [ ] improve table formatting [ ] sticky table headers [ ] add codemirror [ ] add loading indication to the run button (initial version shipped) [ ] add ability to favorite queries [ ] add saving of last query run for a table (started) [ ] add visible output for non-query statements [ ] add schema viewing [ ] add refresh to table list sidebar after CREATE/DROP/ALTER statements [ ] add automatic execution of initial select query on double click [ ] add views to the sidebar [ ] add triggers to sidebar [ ] add upload from SQL, CSV and JSON [ ] add ability to connect to a non-val town Turso database [x] fix wonky sidebar separator height problem (thanks to @stevekrouse) [x] make result tables scrollable [x] add export to CSV, and JSON (CSV and JSON helper functions written in this val . Thanks to @pomdtr for merging the initial version!) [x] add listener for cmd+enter to submit query
HTTP
- [x] make result tables scrollable
- [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!)
- [x] add listener for cmd+enter to submit query
sentryTunnel
@nbbaier
An interactive, runnable TypeScript val by nbbaier
Script
host: string;
projectIds: string[];
export async function sentryTunnel(config: SentryTunnelConfig): Promise<Response> {
const { request, host: SENTRY_HOST, projectIds: SENTRY_PROJECT_IDS } = config;
try {
emailRandomJoke
@russell_leung
An interactive, runnable TypeScript val by russell_leung
Script
export async function emailRandomJoke() {
async function fetchRandomJoke() {
const response = await fetch(
"<https://official-joke-api.appspot.com/random_joke>",
gsheet_call_logged
@rochambeau314
gsheet_specific_call Wrapper around Google Sheets API v4.
(forked from mattx/gsheet_call; adds functionality to specify the sheet to make changes to) Parameters service_account: JSON string containing Google Service Account key sheet_id: Google Sheet ID method: HTTP method to use action: Full URL with https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/ removed data: HTTP request body Requirements a Google Cloud service account the Google Sheets API v4 enabled in your Google Cloud project the spreadsheet ID (provide it in the sheet_id parameter) Instructions Share the spreadsheet with the service account Make a JSON key for the service account, then set it as a secret. Use the secret for the service_account parameter. Figure out the action you want to perform. You will need to provide everything that comes after {spreadsheetId}/ as the action parameter. For example: values/A1:C1:append?valueInputOption=RAW Figure out the request body. For example: {values: [["foo", "bar", "baz"]]}
Script
Wrapper around Google Sheets API v4.
(forked from mattx/gsheet_call; adds functionality to specify the sheet to make changes to)
## Parameters
![stevekrouse avatar](https://images.clerk.dev/uploaded/img_2PqHa2Gsy93xQrjh2w78Xu0cChW.jpeg)
geolocation_api_demo
@stevekrouse
An interactive, runnable TypeScript val by stevekrouse
HTTP
import { html } from "https://esm.town/v/stevekrouse/html";
export default async function (req: Request): Promise<Response> {
return html(`
<script>
function geoFindMe() {
const status = document.querySelector("#status");
mapLink.textContent = "";
function success(position) {
const latitude = position.coords.latitude;
mapLink.textContent = \`Latitude: \${latitude} °, Longitude: \${longitude} °\`;
function error() {
status.textContent = "Unable to retrieve your location";
![Anapp avatar](https://images.clerk.dev/oauth_github/img_2Th1FOnSPUVrRP3qxw3imqjnISt.jpeg)
myApi
@Anapp
An interactive, runnable TypeScript val by Anapp
Script
export function myApi(name) {
return "hi " + name;
![rodrigotello avatar](https://images.clerk.dev/uploaded/img_2Q1sy7hYih37Ssro2ac4uxgyWtH.png)
multiplicationFunctionTest
@rodrigotello
An interactive, runnable TypeScript val by rodrigotello
Script
export function multiplicationFunctionTest(a: number, b: number): number {
return a * b;
actuallyGoodEmojiSearch
@maxm
Emoji Instant Search Uses vector embeddings to get "vibes" search on emojis Ways this could be better: Give it a better name, like: actuallygoodemojisearch.net Index the emojis better, eg: feed the emoji image into an llm and get a richer description of what the emoji is and represents. Make static pages for each emoji with "related" emojis (do vector similarity on the current emoji against other emojis).
HTTP
<br />
Built on Val Town with sqlite vector search and openai embeddings.
<br />
}, 200);
async function fetchResults(query) {
try {
console.error('Error fetching results:', error);
function displayResults(results) {
emojiGrid.innerHTML = '';
valle_tmp_894670518914825972540524579786
@janpaul123
// This val responds to HTTP requests with "Hello, world!"
HTTP
// This val responds to HTTP requests with "Hello, world!"
export default async function main(req: Request): Promise<Response> {
return new Response("Hello, world!", { headers: { "Content-Type": "text/plain" } });