The Appview for the kipclip.com atproto bookmarking service

Fix Fresh 2.x deployment for Deno Deploy

- Update dev.ts to use standard Fresh Builder pattern:
- Use builder.listen(() => import('./main.ts')) callback
- Use builder.build() without app argument
- Add 'start' task for production: deno serve -A _fresh/server.js
- Add exclude pattern for _fresh directory in lint/format
- Update dev task with watch directories

Changed files
+9 -6
+5 -1
deno.json
··· 40 40 "unstable-worker-options": true, 41 41 "unstable-sloppy-imports": true 42 42 }, 43 + "exclude": [ 44 + "**/_fresh/*" 45 + ], 43 46 "tasks": { 44 - "dev": "deno run -A dev.ts", 47 + "dev": "deno run -A --watch=static/,routes/,lib/,frontend/,shared/ dev.ts", 45 48 "build": "deno run -A dev.ts build", 49 + "start": "deno serve -A _fresh/server.js", 46 50 "preview": "deno run -A main.ts", 47 51 "quality": "deno fmt --check && deno lint", 48 52 "check": "deno check --allow-import main.ts",
+4 -5
dev.ts
··· 1 - #!/usr/bin/env -S deno run -A --watch=main.ts,lib/,frontend/,shared/ 1 + #!/usr/bin/env -S deno run -A --watch=static/,routes/,lib/,frontend/,shared/ 2 2 /** 3 3 * Development server for kipclip. 4 4 * Uses Fresh with hot reload for development. 5 5 */ 6 6 7 - import { Builder } from "jsr:@fresh/core@^2.2.0/dev"; 8 - import { app } from "./main.ts"; 7 + import { Builder } from "fresh/dev"; 9 8 10 9 const builder = new Builder(); 11 10 12 11 if (Deno.args.includes("build")) { 13 12 // Production build 14 - await builder.build(app); 13 + await builder.build(); 15 14 } else { 16 15 // Development mode with hot reload 17 - builder.listen(app); 16 + await builder.listen(() => import("./main.ts")); 18 17 }