stevensDemo.cursorrules5 matches
163```
1641655. **fetchTranspiledJavaScript** - Fetch and transpile TypeScript to JavaScript:
166```ts
167const jsCode = await fetchTranspiledJavaScript("https://esm.town/v/username/project/path/to/file.ts");
168```
169242243// Inject data to avoid extra round-trips
244const initialData = await fetchInitialData();
245const dataScript = `<script>
246window.__INITIAL_DATA__ = ${JSON.stringify(initialData)};
3003015. **API Design:**
302- `fetch` handler is the entry point for HTTP vals
303- Run the Hono app with `export default app.fetch // This is the entry point for HTTP vals`
304- Properly handle CORS if needed for external access
stevensDemoApp.tsx17 matches
82const [cookieAndTeaMode, setCookieAndTeaMode] = useState(false);
8384// Fetch images from backend instead of blob storage directly
85useEffect(() => {
86// Set default background color in case image doesn't load
89}
9091// Fetch avatar image
92fetch("/api/images/stevens.jpg")
93.then((response) => {
94if (response.ok) return response.blob();
103});
104105// Fetch wood background
106fetch("/api/images/wood.jpg")
107.then((response) => {
108if (response.ok) return response.blob();
129}, []);
130131const fetchMemories = useCallback(async () => {
132setLoading(true);
133setError(null);
134try {
135const response = await fetch(API_BASE);
136if (!response.ok) {
137throw new Error(`HTTP error! status: ${response.status}`);
154}
155} catch (e) {
156console.error("Failed to fetch memories:", e);
157setError(e.message || "Failed to fetch memories.");
158} finally {
159setLoading(false);
162163useEffect(() => {
164fetchMemories();
165}, [fetchMemories]);
166167const handleAddMemory = async (e: React.FormEvent) => {
176177try {
178const response = await fetch(API_BASE, {
179method: "POST",
180headers: { "Content-Type": "application/json" },
188setNewMemoryTags("");
189setShowAddForm(false);
190await fetchMemories();
191} catch (e) {
192console.error("Failed to add memory:", e);
199200try {
201const response = await fetch(`${API_BASE}/${id}`, {
202method: "DELETE",
203});
205throw new Error(`HTTP error! status: ${response.status}`);
206}
207await fetchMemories();
208} catch (e) {
209console.error("Failed to delete memory:", e);
231232try {
233const response = await fetch(`${API_BASE}/${editingMemory.id}`, {
234method: "PUT",
235headers: { "Content-Type": "application/json" },
240}
241setEditingMemory(null);
242await fetchMemories();
243} catch (e) {
244console.error("Failed to update memory:", e);
eink-frameweather.tsx1 match
46</div>
47)
48: <div className="text-2xl mt-2.5">Unable to fetch weather data</div>}
49</Content>
50<Footer />
eink-frameweather.ts2 matches
1import fetchWithCache from "./fetchWithCache.ts";
23export type WEATHER_FORECAST = {
3940// Cache for 30 minutes
41const data: WEATHER_FORECAST = await fetchWithCache(apiUrl, cacheKey, 30).then((res) => res.json());
42return new Response(JSON.stringify(data), {
43headers: {
eink-framenews.ts2 matches
1import fetchWithCache from "./fetchWithCache.ts";
23const GUARDIAN_API_KEY = Deno.env.get("GUARDIAN_API_KEY");
25const cacheKey = `guardian_headlines_${size}`;
2627const data = await fetchWithCache(apiUrl, cacheKey).then((res) => res.json());
28return new Response(JSON.stringify(data), {
29headers: {
eink-frameindex.tsx1 match
46<h3 class="text-xl pb-2">Example frame previews</h3>
47<p>
48Frames data is fetched, cached, and displayed with val.town, then fetched and rendered on an e-ink
49display.
50</p>
eink-framehemolog.tsx1 match
32))
33)
34: <div className="text-2xl mt-2.5">Unable to fetch data</div>}
35</ul>
36</Content>
eink-framehemolog.ts2 matches
1import fetchWithCache from "./fetchWithCache.ts";
23export type HEMOLOG_TREATMENT = {
22const cacheKey = "hemolog-recent-treatments";
2324const data: HEMOLOG_TREATMENT[] = await fetchWithCache(apiUrl, cacheKey).then((res) => res.json());
25return new Response(JSON.stringify(data), {
26headers: {
1617try {
18const response = await fetch(generateUrl);
19if (!response.ok) {
20throw new Error(`APIFlash responded with status: ${response.status}`);
eink-framefetchWithCache.ts5 matches
6};
78export default async function fetchWithCache(
9apiUrl: string,
10cacheKey: string,
37}
3839// Fetch new data if no valid cache exists
40const response = await fetch(apiUrl);
41if (!response.ok) {
42throw new Error(`API responded with status: ${response.status}`);
64});
65} catch (error) {
66console.error("Error fetching data:", error);
67return new Response(JSON.stringify({ error: "Failed to fetch data" }), {
68status: 500,
69headers: { "Content-Type": "application/json" },