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/$%7BsvgDataUrl%7D?q=api&page=1&format=json

For typeahead suggestions, use the /typeahead endpoint:

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

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

Found 18926 results for "api"(1740ms)

cardamonRecipeForm.tsx5 matches

@connnollyโ€ขUpdated 33 mins ago
97 switch (parseMode) {
98 case 'url':
99 endpoint = '/api/parse/url';
100 requestData = { type: 'url', content: parseInput };
101 break;
102 case 'text':
103 endpoint = '/api/parse/text';
104 requestData = { type: 'url', content: parseInput }; // Note: backend expects 'url' type for text parsing
105 break;
110
111 if (uploadedFile.type.startsWith('image/')) {
112 endpoint = '/api/parse/image';
113 requestData = { type: 'image', content: parseInput };
114 } else if (uploadedFile.type === 'application/pdf') {
115 endpoint = '/api/parse/pdf';
116 requestData = { type: 'pdf', content: parseInput };
117 } else {
198 };
199
200 const url = isEditing ? `/api/recipes/${recipe.id}` : '/api/recipes';
201 const method = isEditing ? 'PUT' : 'POST';
202

cardamonindex.ts5 matches

@connnollyโ€ขUpdated 40 mins ago
15await runMigrations();
16
17// API routes
18app.route('/api/recipes', recipesRoutes);
19app.route('/api/parse', parseRoutes);
20
21// Health check endpoint
22app.get('/api/health', (c) => {
23 return c.json({ status: 'ok', timestamp: new Date().toISOString() });
24});
25
26// Test delete endpoint
27app.get('/api/test-delete', async (c) => {
28 try {
29 const { createRecipe, deleteRecipe, getAllRecipes } = await import('./database/queries.ts');

cardamonRecipeView.tsx1 match

@connnollyโ€ขUpdated 1 hour ago
34 const handleDelete = async () => {
35 try {
36 const response = await fetch(`/api/recipes/${recipe.id}`, {
37 method: 'DELETE'
38 });

cardamonRecipeList.tsx1 match

@connnollyโ€ขUpdated 1 hour ago
48 const handleDelete = async (recipeId: number) => {
49 try {
50 const response = await fetch(`/api/recipes/${recipeId}`, {
51 method: 'DELETE'
52 });

cardamonApp.tsx1 match

@connnollyโ€ขUpdated 1 hour ago
33 setState(prev => ({ ...prev, loading: true, error: null }));
34 try {
35 const response = await fetch('/api/recipes');
36 const data = await response.json();
37

cardamonrecipes.ts20 matches

@connnollyโ€ขUpdated 1 hour ago
1import { Hono } from "https://esm.sh/hono@3.11.7";
2import type { Recipe, RecipeFilters, ApiResponse } from "../../shared/types.ts";
3import {
4 createRecipe,
28
29 const recipes = await getAllRecipes(filters);
30 return c.json({ success: true, data: recipes } as ApiResponse<Recipe[]>);
31 } catch (error) {
32 console.error('Error fetching recipes:', error);
33 return c.json({ success: false, error: 'Failed to fetch recipes' } as ApiResponse, 500);
34 }
35});
40 const id = parseInt(c.req.param('id'));
41 if (isNaN(id)) {
42 return c.json({ success: false, error: 'Invalid recipe ID' } as ApiResponse, 400);
43 }
44
45 const recipe = await getRecipeById(id);
46 if (!recipe) {
47 return c.json({ success: false, error: 'Recipe not found' } as ApiResponse, 404);
48 }
49
50 return c.json({ success: true, data: recipe } as ApiResponse<Recipe>);
51 } catch (error) {
52 console.error('Error fetching recipe:', error);
53 return c.json({ success: false, error: 'Failed to fetch recipe' } as ApiResponse, 500);
54 }
55});
65 success: false,
66 error: 'Missing required fields: title, ingredients, and steps are required'
67 } as ApiResponse, 400);
68 }
69
72 success: false,
73 error: 'At least one ingredient is required'
74 } as ApiResponse, 400);
75 }
76
79 success: false,
80 error: 'At least one cooking step is required'
81 } as ApiResponse, 400);
82 }
83
84 const recipe = await createRecipe(recipeData);
85 return c.json({ success: true, data: recipe } as ApiResponse<Recipe>, 201);
86 } catch (error) {
87 console.error('Error creating recipe:', error);
88 return c.json({ success: false, error: 'Failed to create recipe' } as ApiResponse, 500);
89 }
90});
95 const id = parseInt(c.req.param('id'));
96 if (isNaN(id)) {
97 return c.json({ success: false, error: 'Invalid recipe ID' } as ApiResponse, 400);
98 }
99
102 const recipe = await updateRecipe(id, updates);
103 if (!recipe) {
104 return c.json({ success: false, error: 'Recipe not found' } as ApiResponse, 404);
105 }
106
107 return c.json({ success: true, data: recipe } as ApiResponse<Recipe>);
108 } catch (error) {
109 console.error('Error updating recipe:', error);
110 return c.json({ success: false, error: 'Failed to update recipe' } as ApiResponse, 500);
111 }
112});
117 const id = parseInt(c.req.param('id'));
118 if (isNaN(id)) {
119 return c.json({ success: false, error: 'Invalid recipe ID' } as ApiResponse, 400);
120 }
121
122 const deleted = await deleteRecipe(id);
123 if (!deleted) {
124 return c.json({ success: false, error: 'Recipe not found' } as ApiResponse, 404);
125 }
126
127 return c.json({ success: true, data: { deleted: true } } as ApiResponse);
128 } catch (error) {
129 console.error('Error deleting recipe:', error);
130 return c.json({ success: false, error: 'Failed to delete recipe' } as ApiResponse, 500);
131 }
132});

cardamontypes.ts1 match

@connnollyโ€ขUpdated 1 hour ago
38}
39
40export interface ApiResponse<T = any> {
41 success: boolean;
42 data?: T;

cardamonREADME.md11 matches

@connnollyโ€ขUpdated 1 hour ago
20
21- **Frontend**: React with TypeScript, TailwindCSS
22- **Backend**: Hono API framework
23- **Database**: SQLite for recipe storage
24- **AI**: OpenAI GPT-4 for intelligent recipe parsing
35โ”‚ โ”‚ โ”œโ”€โ”€ recipes.ts # Recipe CRUD operations
36โ”‚ โ”‚ โ””โ”€โ”€ parse.ts # Recipe parsing endpoints
37โ”‚ โ””โ”€โ”€ index.ts # Main API entry point
38โ”œโ”€โ”€ frontend/
39โ”‚ โ”œโ”€โ”€ components/
48```
49
50## API Endpoints
51
52- `POST /api/parse/url` - Parse recipe from URL
53- `POST /api/parse/pdf` - Parse recipe from PDF
54- `POST /api/parse/image` - Parse recipe from image
55- `GET /api/recipes` - Get all recipes
56- `POST /api/recipes` - Save a recipe
57- `GET /api/recipes/:id` - Get specific recipe
58- `PUT /api/recipes/:id` - Update recipe
59- `DELETE /api/recipes/:id` - Delete recipe
60
61## Usage

zerto-lifecycle-matrixREADME.md1 match

@captn3m0โ€ขUpdated 1 hour ago
5Generated using Val.town
6
7Relies on the Zoomin Software bundle API to fetch the data using the JSON API, and then pluck and render the HTML part.

zerto-lifecycle-matrixmain.tsx1 match

@captn3m0โ€ขUpdated 1 hour ago
1export default async function (req: Request): Promise<Response> {
2 try {
3 const response = await fetch("https://help-be.zerto.com/api/bundle/Lifecycle.Matrix.HTML/page/product_version_lifecycle_matrix_for_zerto.html");
4
5 if (!response.ok) {

beeminder-api4 file matches

@cricks_unmixed4uโ€ขUpdated 4 hours ago

shippingAPI1 file match

@dynamic_silverโ€ขUpdated 19 hours ago
apiry
snartapi