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/$1?q=function&page=51&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 29319 results for "function"(4177ms)

Gardenon

Gardenonindex.ts1 match

@LladUpdated 1 day ago
20
21// Initialize database
22async function initDatabase() {
23 // Create gardens table
24 await sqlite.execute(`CREATE TABLE IF NOT EXISTS ${GARDENS_TABLE_NAME} (
Gardenon

Gardenonindex.html24 matches

@LladUpdated 1 day ago
488
489 // Load all gardens
490 async function loadGardens() {
491 try {
492 const response = await fetch('/api/gardens');
520
521 // Load current garden and its plants
522 async function loadCurrentGarden() {
523 if (!currentGarden) return;
524
532
533 // Fetch plants for current garden
534 async function fetchPlants() {
535 if (!currentGarden) {
536 plants = [];
551
552 // Render plants on the map and in the list
553 function renderPlants() {
554 // Clear existing plants (but preserve placeholder)
555 gardenMap.querySelectorAll('.plant:not(.placeholder)').forEach(el => el.remove());
628
629 // Create a new garden
630 async function createGarden() {
631 const name = newGardenNameInput.value.trim();
632 const width = parseInt(newGardenWidthInput.value);
674
675 // Update current garden settings
676 async function updateGardenSettings() {
677 if (!currentGarden) return;
678
722
723 // Delete current garden
724 async function deleteGarden() {
725 if (!currentGarden) return;
726
759
760 // Create a placeholder plant on the map
761 function createPlaceholderPlant(x, y) {
762 // Remove existing placeholder if any
763 removePlaceholderPlant();
792
793 // Remove placeholder plant from the map
794 function removePlaceholderPlant() {
795 if (placeholderPlant && placeholderPlant.element) {
796 placeholderPlant.element.remove();
800
801 // Select a plant to edit
802 function selectPlant(plant) {
803 // Cancel move mode if active
804 if (isMovingPlant) {
833
834 // Clear the form
835 function clearForm() {
836 // Remove placeholder plant if it exists
837 removePlaceholderPlant();
859
860 // Start move mode
861 function startMoveMode() {
862 if (!selectedPlant) {
863 alert('Please select a plant to move.');
873
874 // Cancel move mode
875 function cancelMoveMode() {
876 isMovingPlant = false;
877 mapInstructions.textContent = 'Tap anywhere on the map to add a plant';
882
883 // Move plant to new position
884 function movePlantTo(x, y) {
885 if (!selectedPlant) return;
886
906
907 // Add a new plant at the clicked position
908 function addPlantAt(x, y) {
909 if (!currentGarden) {
910 alert('Please select a garden first.');
937
938 // Save plant data
939 async function savePlant(plantData) {
940 if (!currentGarden) {
941 alert('Please select a garden first.');
984
985 // Update placeholder plant when diameter changes
986 function updatePlaceholderPlant() {
987 if (placeholderPlant && placeholderPlant.element) {
988 const newDiameter = parseFloat(plantDiameterInput.value) || 50;
994
995 // Delete a plant
996 async function deletePlant(id) {
997 if (!confirm('Are you sure you want to delete this plant?')) {
998 return;
1020 }
1021
1022 // Modal functions
1023 function openGardenSettingsModal() {
1024 if (!currentGarden) {
1025 alert('Please select a garden first.');
1033 }
1034
1035 function closeGardenSettingsModal() {
1036 gardenSettingsModal.style.display = 'none';
1037 }
1038
1039 function openNewGardenModal() {
1040 newGardenNameInput.value = '';
1041 newGardenWidthInput.value = 700;
1044 }
1045
1046 function closeNewGardenModal() {
1047 newGardenModal.style.display = 'none';
1048 }
1176
1177 // Initialize
1178 async function initialize() {
1179 await loadGardens();
1180 }
Gardenon

Gardenonadmin.html4 matches

@LladUpdated 1 day ago
241
242 // Fetch database info
243 async function fetchDatabaseInfo() {
244 try {
245 const response = await fetch('/api/admin/db');
257
258 // Render database info
259 function renderDatabaseInfo() {
260 if (!dbData) return;
261
299
300 // Render a single table
301 function renderTable(tableData, elements) {
302 if (!tableData) return;
303
368
369 // Toggle between table and JSON view
370 function toggleView() {
371 isJsonView = !isJsonView;
372

thirdTimerutils.ts2 matches

@nbbaierUpdated 1 day ago
4 * @returns {string} Formatted time string
5 */
6export function formatTime(seconds: number): string {
7 const hours = Math.floor(seconds / 3600);
8 const minutes = Math.floor((seconds % 3600) / 60);
24 * @returns {string} Formatted duration string (e.g., "30s", "5m", "2h 30m")
25 */
26export function formatMinutes(minutes: number): string {
27 if (minutes < 1) return `${Math.round(minutes * 60)}s`;
28 if (minutes < 60) return `${Math.round(minutes)}m`;

thirdTimerTimerDisplay.tsx1 match

@nbbaierUpdated 1 day ago
16}
17
18export function TimerDisplay({
19 state,
20 currentSessionTime,

openHeartProtocolmain.tsx6 matches

@charmaineUpdated 1 day ago
57};
58
59export default async function fetch(request: Request) {
60 console.log(`Received ${request.method} request to ${request.url}`);
61 if (request.method === "GET") {
70}
71
72function error(text: string, code = 400) {
73 console.log(`Error response: ${text} (${code})`);
74 return new Response(text, { status: code });
75}
76
77async function handleGet(request: Request) {
78 console.log("Handling GET request");
79 const [domain, ...uidParts] = url(request).pathname.slice(1).split("/");
105}
106
107function url(request: Request) {
108 return new URL(request.url);
109}
110
111async function handlePost(request: Request) {
112 console.log("Handling POST request");
113 const urlObject = url(request);
146}
147
148function ensureEmoji(emoji: string) {
149 const segments = Array.from(new Intl.Segmenter("en", { granularity: "grapheme" }).segment(emoji.trim()));
150 const parsedEmoji: string | null = segments.length > 0 ? segments[0].segment : null;

openHeartProtocolPOST.tsx1 match

@charmaineUpdated 1 day ago
1// Send an emoji
2
3export default async function post() {
4 const urls = [
5 "https://openheart.val.run/charmaineklee.com/OpenHeart",

intentmain.tsx29 matches

@legalUpdated 1 day ago
146};
147
148async function extractPdfTextNative(
149 data: ArrayBuffer,
150 fileName: string,
173}
174
175async function callOpenAI(
176 openaiInstance: OpenAI,
177 systemPrompt: string,
231}
232
233async function ingestDocumentForSuggestion(
234 input: { documentFile?: File; clientInputSourceDescription: string },
235 log: LogEntry[],
257}
258
259function generateHtmlShell(initialQuery: string, sourceUrl: string) {
260 const escapedQuery = initialQuery.replace(/</g, "&lt;").replace(/>/g, "&gt;");
261 return `
286 .hamburger-box { width: 30px; height: 22px; display: inline-block; position: relative; }
287 .hamburger-inner { display: block; top: 50%; margin-top: -1px; }
288 .hamburger-inner, .hamburger-inner::before, .hamburger-inner::after { width: 30px; height: 2px; background-color: #ecf0f1; border-radius: 4px; position: absolute; transition-property: transform; transition-duration: 0.15s; transition-timing-function: ease; }
289 .hamburger-inner::before, .hamburger-inner::after { content: ""; display: block; }
290 .hamburger-inner::before { top: -8px; }
404 </div>
405<script>
406(function() {
407 const MAX_SUGGESTION_SELECTIONS = 15;
408
445 });
446
447 function navigateToView(viewId, params = {}) {
448 currentView = viewId;
449 for (const key in views) { views[key].classList.remove('active-view'); }
468 }
469
470 function setupEventListeners() {
471 hamburgerToggle.addEventListener('click', () => {
472 const isExpanded = sidebar.classList.contains('expanded-mobile') || !sidebar.classList.contains('collapsed');
519 }
520
521 function generateId() { return Date.now().toString(36) + Math.random().toString(36).substring(2); }
522 function escapeHtml(unsafe) {
523 if (unsafe === null || typeof unsafe === 'undefined') return '';
524 return String(unsafe).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
525 }
526
527 function renderDashboard() {
528 views.dashboard.innerHTML = \`
529 <h1>Dashboard</h1>
541 ni_saveAnalysisButton, ni_taskSelectionInfo, ni_resultsSection;
542
543 function renderNewInquiryView(params = {}) {
544 views['new-inquiry'].innerHTML = \`
545 <h1>New Inquiry - IDDAE Workflow</h1>
640 }
641
642 function iddae_setUIPhase(phase) {
643 iddae_currentPhase = phase;
644 ni_submitButton.classList.remove('loading');
677 }
678
679 async function ni_handleIDDAESubmit(event) {
680 event.preventDefault();
681 ni_clearStatusMessages();
691 }
692
693 async function iddae_handleUploadAndSuggestTasks() {
694 const file = ni_fileInput.files[0];
695 if (!file) {
754 }
755
756 async function iddae_handleFinalAnalysis() {
757 const legalTaskQuery = ni_customLegalTaskQueryInput.value.trim();
758 if (!legalTaskQuery) {
809 }
810
811 function ni_addStatusMessage(message, type = 'info') {
812 const entry = document.createElement('div');
813 entry.className = \`status-entry \${type}\`;
817 }
818
819 function ni_clearStatusMessages() {
820 if(ni_statusContainer) ni_statusContainer.innerHTML = '';
821 }
822
823 function ni_populateSuggestedTasks(groupedSuggestions = {}) {
824 ni_suggestedTasksListDiv.innerHTML = '';
825 updateTaskSelectionInfo();
892 }
893
894 function handleGroupCheckboxChange(event) {
895 const groupCheckbox = event.target;
896 const category = groupCheckbox.dataset.category;
924 }
925
926 function updateCustomQueryFromSuggestions() {
927 const selectedTasks = [];
928 const taskCheckboxes = ni_suggestedTasksListDiv.querySelectorAll('input[type="checkbox"]:checked:not([id^="group-"])');
959 }
960
961 function updateTaskSelectionInfo(count) {
962 if (typeof count === 'undefined') {
963 count = ni_suggestedTasksListDiv.querySelectorAll('input[type="checkbox"]:checked:not([id^="group-"])').length;
968 }
969
970 function ni_renderStructuredResults(data) {
971 if (!data || !data.request_details) {
972 ni_structuredResultsContainer.innerHTML = '<p>No valid analysis data to display.</p>';
1019 }
1020
1021 function renderHistoryView() {
1022 views.history.innerHTML = \`
1023 <h1>History</h1>
1033 }
1034
1035 function renderDocumentDetailView(docId) {
1036 views['document-detail'].innerHTML = \`
1037 <h1>Document Details</h1>
1043 }
1044
1045 function renderAnalysisDetailView(analysisId) {
1046 views['analysis-detail'].innerHTML = \`
1047 <h1>Analysis Details</h1>
1053 }
1054
1055 function renderSettingsView() {
1056 views.settings.innerHTML = \`
1057 <h1>Settings</h1>
1084}
1085
1086export default async function(req: Request) {
1087 const openai = new OpenAI();
1088 const url = new URL(req.url);
1275 }
1276
1277 async function runAnalysisWithProvidedText(
1278 analysisInput: { legalTaskQuery: string; documentText: string; inputSourceDescription: string },
1279 log: LogEntry[],

cronSiteMonitormain.tsx5 matches

@panphoraUpdated 1 day ago
36const NOTIFICATION_COOLDOWN_MS = 30 * 60 * 1000; // 30 minutes between notifications for same site
37
38async function checkSite(url: string): Promise<SiteStatus> {
39 const startTime = Date.now();
40 const timestamp = new Date().toISOString();
96}
97
98async function getSiteHistory(): Promise<Record<string, SiteHistory>> {
99 try {
100 return await blob.getJSON("uptime_history") || {};
104}
105
106async function updateSiteHistory(history: Record<string, SiteHistory>) {
107 await blob.setJSON("uptime_history", history);
108}
109
110function shouldNotify(siteHistory: SiteHistory, currentStatus: SiteStatus): boolean {
111 // Don't notify if site is up
112 if (currentStatus.status === "up") return false;
125}
126
127export default async function monitor() {
128 console.log(`🔍 Starting uptime check for ${SITES_TO_MONITOR.length} sites...`);
129

pt-sandboxmain.ts2 matches

@amineUpdated 1 day ago
13};
14
15function addWaterBodiesToMap(map: TownMap): TownMap {
16 // Create a deep copy of the input map
17 const newMap = map.map((row) => [...row]);
62}
63
64function townMapGenerator({
65 width = defaultMapSize.width,
66 height = defaultMapSize.height,
tuna

tuna9 file matches

@jxnblkUpdated 1 day ago
Simple functional CSS library for Val Town

getFileEmail4 file matches

@shouserUpdated 1 month ago
A helper function to build a file's email
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": "*",
webup
LangChain (https://langchain.com) Ambassador, KubeSphere (https://kubesphere.io) Ambassador, CNCF OpenFunction (https://openfunction.dev) TOC Member.