Val Town Code SearchReturn to Val Town

API Access

You can access search results via JSON API by adding format=json to your query:

https://codesearch.val.run/$%7Burl%7D?q=function&page=17&format=json

For typeahead suggestions, use the /typeahead endpoint:

https://codesearch.val.run/typeahead?q=function

Returns an array of strings in format "username" or "username/projectName"

Found 18977 results for "function"(992ms)

Townietext-editor.ts7 matches

@jxnblkโ€ขUpdated 2 days ago
3import fileWithLinesNumbers from "../utils/fileWithLinesNumbers.ts";
4
5function printFileType(file: any){
6 if (file.type === "interval")
7 return " (cron)"
14 * View a file or directory in a Val Town project
15 */
16async function view(
17 vt: ValTown,
18 project: any,
71 * Replace a string in a file in a Val Town project
72 */
73async function str_replace(
74 vt: ValTown,
75 project: any,
133 * Create a new file in a Val Town project
134 */
135async function create(vt: ValTown, project: any, branch_id: string | undefined, path: string, file_text?: string) {
136 let type_: "file" | "http" | "script";
137 if (path.includes("backend/index.ts")) type_ = "http";
167 * Insert a string at a specific line in a file in a Val Town project
168 */
169async function insert(
170 vt: ValTown,
171 project: any,
210 * Undo the last edit to a file in a Val Town project (not implemented)
211 */
212async function undo_edit(vt: ValTown, project: any, branch_id: string | undefined) {
213 return {
214 type: "error",
220 * Creates a text editor tool for editing files in a Val Town project
221 */
222export function getTextEditorTool(bearerToken: string, project: any, branch_id: string | undefined) {
223 const vt = new ValTown({ bearerToken });
224 return anthropic.tools.textEditor_20250124({

Towniesystem_prompt.txt12 matches

@jxnblkโ€ขUpdated 2 days ago
4
5- Ask clarifying questions when requirements are ambiguous
6- Provide complete, functional solutions rather than skeleton implementations
7- Test your logic against edge cases before presenting the final solution
8- Ensure all code follows Val Town's specific platform requirements
17- **Never bake in secrets into the code** - always use environment variables
18- Include comments explaining complex logic (avoid commenting obvious operations)
19- Follow modern ES6+ conventions and functional programming practices if possible
20
21## Types of triggers
28
29```ts
30export default async function (req: Request) {
31 return new Response("Hello World");
32}
40
41```ts
42export default async function () {
43 // Scheduled task code
44}
52
53```ts
54export default async function (email: Email) {
55 // Process email
56}
60## Val Town Standard Libraries
61
62Val Town provides several hosted services and utility functions.
63
64### Blob Storage
114```
115
116## Val Town Utility Functions
117
118Val Town provides several utility functions to help with common project tasks.
119
120### Importing Utilities
194โ”‚ โ”œโ”€โ”€ database/
195โ”‚ โ”‚ โ”œโ”€โ”€ migrations.ts # Schema definitions
196โ”‚ โ”‚ โ”œโ”€โ”€ queries.ts # DB query functions
197โ”‚ โ”‚ โ””โ”€โ”€ README.md
198โ”‚ โ””โ”€โ”€ routes/ # Route modules
213โ””โ”€โ”€ shared/
214 โ”œโ”€โ”€ README.md
215 โ””โ”€โ”€ utils.ts # Shared types and functions
216```
217
220- Hono is the recommended API framework
221- Main entry point should be `backend/index.ts`
222- **Static asset serving:** Use the utility functions to read and serve project files:
223 ```ts
224 import { readFile, serveFile } from "https://esm.town/v/std/utils@85-main/index.ts";
254- Run migrations on startup or comment out for performance
255- Change table names when modifying schemas rather than altering
256- Export clear query functions with proper TypeScript typing
257
258## Common Gotchas and Solutions

Towniestyles.css2 matches

@jxnblkโ€ขUpdated 2 days ago
160 transition-property: background-color;
161 transition-duration: 400ms;
162 transition-timing-function: linear;
163}
164
769 transition-property: color, background-color, border-color, opacity;
770 transition-duration: 200ms;
771 transition-timing-function: ease-in-out;
772}
773

TowniesoundEffects.ts3 matches

@jxnblkโ€ขUpdated 2 days ago
1/**
2 * Sound effects utility functions for the application
3 */
4
7 * @returns A Promise that resolves when the sound has started playing
8 */
9export function playBellSound(): Promise<void> {
10 return new Promise((resolve) => {
11 try {
69 * @returns A Promise that resolves when the sound has started playing
70 */
71export function playSimpleNotification(): Promise<void> {
72 return new Promise((resolve) => {
73 try {

Townieschema.tsx2 matches

@jxnblkโ€ขUpdated 2 days ago
22}
23
24async function createTables() {
25 // archive a table
26 // await sqlite.execute(
68}
69
70async function deleteTables() {
71 await sqlite.execute(`DROP TABLE IF EXISTS ${USAGE_TABLE}`);
72 await sqlite.execute(`DROP TABLE IF EXISTS ${INFERENCE_CALLS_TABLE}`);

TownieRequireAuthRoute.tsx1 match

@jxnblkโ€ขUpdated 2 days ago
7import { useAuth } from "../hooks/useAuth.tsx";
8
9export function RequireAuthRoute () {
10 const location = useLocation();
11 const { isAuthenticated } = useAuth();

Townierequests.ts5 matches

@jxnblkโ€ขUpdated 2 days ago
29}
30
31export function renderRequests(data: RequestRow[], pagination: PaginationData, baseUrl: string): string {
32 // Calculate totals
33 const totalRequests = pagination.totalItems;
39 // Client-side script for collapsible rows
40 const script = `
41 // Function to toggle inference details
42 function toggleInferenceDetails(usageId) {
43 const detailsElement = document.getElementById('inference-' + usageId);
44
153
154 // Add click event listeners to all collapsible rows
155 document.addEventListener('DOMContentLoaded', function() {
156 document.querySelectorAll('.collapsible').forEach(row => {
157 row.addEventListener('click', function() {
158 const usageId = this.getAttribute('data-id');
159 toggleInferenceDetails(usageId);

Townierequests.ts4 matches

@jxnblkโ€ขUpdated 2 days ago
6 * Get paginated usage requests
7 */
8export async function getRequests(url: URL) {
9 const { page, pageSize } = getPaginationParams(url);
10
35 * Get a single request by ID
36 */
37export async function getRequestById(id: string) {
38 const result = await sqlite.execute(`
39 SELECT * FROM ${USAGE_TABLE}
51 * Get inference calls for a specific usage request
52 */
53export async function getInferenceCallsForRequest(usageId: string) {
54 const result = await sqlite.execute(`
55 SELECT
75 * Calculate totals from inference calls for a request
76 */
77export async function getInferenceTotalsForRequest(usageId: string) {
78 const calls = await getInferenceCallsForRequest(usageId);
79

Towniequeries.tsx6 matches

@jxnblkโ€ขUpdated 2 days ago
7// but in the meantime, we can cache user info in memory
8const userIdCache: { [key: string]: any } = {};
9export async function getUser(bearerToken: string) {
10 if (userIdCache[bearerToken]) return userIdCache[bearerToken];
11
16}
17
18async function last24Hours(userId: string) {
19 const usage = await sqlite.execute(
20 `SELECT
40 "devto": 100, // hardcoded limit of $100 per day for dev.to, billed later
41};
42export async function overLimit(bearerToken: string) {
43 const user = await getUser(bearerToken);
44 const last24HourUsage = await last24Hours(user.id);
49}
50
51export async function insertInferenceCall({
52 usage_id,
53 input_tokens,
103}
104
105export async function startTrackingUsage({
106 bearerToken,
107 val_id,
145}
146
147export async function finishTrackingUsage({
148 rowid,
149 input_tokens,

TownieProjectsRoute.tsx3 matches

@jxnblkโ€ขUpdated 2 days ago
4import { Loading } from "./Loading.tsx";
5
6export function ProjectsRoute () {
7 const projects = useProjects();
8
42}
43
44function ProjectCard ({
45 user,
46 project,
81}
82
83function Privacy ({ privacy }: {
84 privacy: "public"|"unlisted"|"private";
85}) {

getFileEmail4 file matches

@shouserโ€ขUpdated 2 weeks ago
A helper function to build a file's email
tuna

tuna8 file matches

@jxnblkโ€ขUpdated 2 weeks ago
Simple functional CSS library for Val Town
webup
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.
lost1991
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": "*",