app.ts 991 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. export const domain = (() => {
  2. if ($app.stage === "production") return "opencode.ai"
  3. if ($app.stage === "dev") return "dev.opencode.ai"
  4. return `${$app.stage}.dev.opencode.ai`
  5. })()
  6. const bucket = new sst.cloudflare.Bucket("Bucket")
  7. export const api = new sst.cloudflare.Worker("Api", {
  8. domain: `api.${domain}`,
  9. handler: "packages/function/src/api.ts",
  10. url: true,
  11. link: [bucket],
  12. transform: {
  13. worker: (args) => {
  14. args.bindings = $resolve(args.bindings).apply((bindings) => [
  15. ...bindings,
  16. {
  17. name: "SYNC_SERVER",
  18. type: "durable_object_namespace",
  19. className: "SyncServer",
  20. },
  21. ])
  22. args.migrations = {
  23. oldTag: "v1",
  24. newTag: "v1",
  25. //newSqliteClasses: ["SyncServer"],
  26. }
  27. },
  28. },
  29. })
  30. new sst.cloudflare.StaticSite("Web", {
  31. path: "packages/web",
  32. domain,
  33. environment: {
  34. VITE_API_URL: api.url,
  35. },
  36. build: {
  37. command: "bun run build",
  38. output: "dist",
  39. },
  40. })