소스 검색

Use devinxi-ed Solid Start (#4635)

Co-authored-by: GitHub Action <[email protected]>
Co-authored-by: Dax Raad <[email protected]>
Brendan Allan 2 달 전
부모
커밋
85d99198b5

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 178 - 197
bun.lock


+ 1 - 1
package.json

@@ -48,7 +48,7 @@
       "vite": "7.1.4",
       "@solidjs/meta": "0.29.4",
       "@solidjs/router": "0.15.4",
-      "@solidjs/start": "1.2.0",
+      "@solidjs/start": "https://pkg.pr.new/@solidjs/start@dbff19d",
       "solid-js": "1.9.10",
       "vite-plugin-solid": "2.11.10"
     }

+ 0 - 1
packages/console/app/.gitignore

@@ -3,7 +3,6 @@ dist
 .output
 .vercel
 .netlify
-.vinxi
 app.config.timestamp_*.js
 
 # Environment

+ 0 - 23
packages/console/app/app.config.ts

@@ -1,23 +0,0 @@
-import { defineConfig } from "@solidjs/start/config"
-
-export default defineConfig({
-  middleware: "./src/middleware.ts",
-  vite: {
-    server: {
-      allowedHosts: true,
-    },
-    build: {
-      rollupOptions: {
-        external: ["cloudflare:workers"],
-      },
-      minify: false,
-    },
-  },
-  server: {
-    compatibilityDate: "2024-09-19",
-    preset: "cloudflare_module",
-    cloudflare: {
-      nodeCompat: true,
-    },
-  },
-})

+ 8 - 5
packages/console/app/package.json

@@ -4,12 +4,13 @@
   "type": "module",
   "scripts": {
     "typecheck": "tsgo --noEmit",
-    "dev": "vinxi dev --host 0.0.0.0",
+    "dev": "vite dev --host 0.0.0.0",
     "dev:remote": "VITE_AUTH_URL=https://auth.dev.opencode.ai bun sst shell --stage=dev bun dev",
-    "build": "./script/generate-sitemap.ts && vinxi build && ../../opencode/script/schema.ts ./.output/public/config.json",
-    "start": "vinxi start"
+    "build": "./script/generate-sitemap.ts && vite build && ../../opencode/script/schema.ts ./.output/public/config.json",
+    "start": "vite start"
   },
   "dependencies": {
+    "@cloudflare/vite-plugin": "1.15.2",
     "@ibm/plex": "6.4.1",
     "@jsx-email/render": "1.1.1",
     "@kobalte/core": "catalog:",
@@ -21,13 +22,15 @@
     "@solidjs/router": "catalog:",
     "@solidjs/start": "catalog:",
     "chart.js": "4.5.1",
+    "nitro": "3.0.1-alpha.1",
     "solid-js": "catalog:",
-    "vinxi": "^0.5.7",
+    "vite": "catalog:",
     "zod": "catalog:"
   },
   "devDependencies": {
+    "@typescript/native-preview": "catalog:",
     "typescript": "catalog:",
-    "@typescript/native-preview": "catalog:"
+    "wrangler": "4.50.0"
   },
   "engines": {
     "node": ">=22"

+ 1 - 1
packages/console/app/src/context/auth.session.ts

@@ -1,4 +1,4 @@
-import { useSession } from "vinxi/http"
+import { useSession } from "@solidjs/start/http"
 
 export interface AuthSession {
   account?: Record<

+ 4 - 0
packages/console/app/src/global.d.ts

@@ -1 +1,5 @@
 /// <reference types="@solidjs/start/env" />
+
+export declare module "@solidjs/start/server" {
+  export type APIEvent = { request: Request }
+}

+ 2 - 2
packages/console/app/src/middleware.ts

@@ -1,5 +1,5 @@
-import { defineMiddleware } from "vinxi/http"
+import { createMiddleware } from "@solidjs/start/middleware"
 
-export default defineMiddleware({
+export default createMiddleware({
   onBeforeResponse() {},
 })

+ 2 - 2
packages/console/app/src/routes/index.tsx

@@ -1,6 +1,6 @@
 import "./index.css"
 import { Title, Meta, Link } from "@solidjs/meta"
-import { HttpHeader } from "@solidjs/start"
+// import { HttpHeader } from "@solidjs/start"
 import video from "../asset/lander/opencode-min.mp4"
 import videoPoster from "../asset/lander/opencode-poster.png"
 import { IconCopy, IconCheck } from "../component/icon"
@@ -42,7 +42,7 @@ export default function Home() {
 
   return (
     <main data-page="opencode">
-      <HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" />
+      {/*<HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" />*/}
       <Title>OpenCode | The AI coding agent built for the terminal</Title>
       <Link rel="canonical" href={config.baseUrl} />
       <Link rel="icon" type="image/svg+xml" href="/favicon.svg" />

+ 2 - 2
packages/console/app/src/routes/zen/index.tsx

@@ -1,7 +1,7 @@
 import "./index.css"
 import { createAsync, query, redirect } from "@solidjs/router"
 import { Title, Meta, Link } from "@solidjs/meta"
-import { HttpHeader } from "@solidjs/start"
+// import { HttpHeader } from "@solidjs/start"
 import zenLogoLight from "../../asset/zen-ornate-light.svg"
 import { config } from "~/config"
 import zenLogoDark from "../../asset/zen-ornate-dark.svg"
@@ -29,7 +29,7 @@ export default function Home() {
   createAsync(() => checkLoggedIn())
   return (
     <main data-page="zen">
-      <HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" />
+      {/*<HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" />*/}
       <Title>OpenCode Zen | A curated set of reliable optimized models for coding agents</Title>
       <Link rel="canonical" href={`${config.baseUrl}/zen`} />
       <Link rel="icon" type="image/svg+xml" href="/favicon-zen.svg" />

+ 1 - 1
packages/console/app/tsconfig.json

@@ -12,7 +12,7 @@
     "allowJs": true,
     "strict": true,
     "noEmit": true,
-    "types": ["vinxi/types/client"],
+    "types": ["vite/client"],
     "isolatedModules": true,
     "paths": {
       "~/*": ["./src/*"]

+ 25 - 0
packages/console/app/vite.config.ts

@@ -0,0 +1,25 @@
+import { defineConfig, PluginOption } from "vite"
+import { solidStart } from "@solidjs/start/config"
+import { nitro } from "nitro/vite"
+
+export default defineConfig({
+  plugins: [
+    solidStart() as PluginOption,
+    nitro({
+      compatibilityDate: "2024-09-19",
+      preset: "cloudflare_module",
+      cloudflare: {
+        nodeCompat: true,
+      },
+    }),
+  ],
+  server: {
+    allowedHosts: true,
+  },
+  build: {
+    rollupOptions: {
+      external: ["cloudflare:workers"],
+    },
+    minify: false,
+  },
+})

+ 1 - 1
packages/desktop/vite.config.ts

@@ -9,7 +9,7 @@ export default defineConfig({
       "@": path.resolve(__dirname, "./src"),
     },
   },
-  plugins: [tailwindcss(), solidPlugin()],
+  plugins: [tailwindcss(), solidPlugin()] as any,
   server: {
     host: "0.0.0.0",
     allowedHosts: true,

+ 0 - 2
packages/enterprise/.gitignore

@@ -3,8 +3,6 @@ dist
 .output
 .vercel
 .netlify
-.vinxi
-app.config.timestamp_*.js
 
 # Environment
 .env

+ 0 - 12
packages/enterprise/app.config.ts

@@ -1,12 +0,0 @@
-import { defineConfig } from "@solidjs/start/config"
-import tailwindcss from "@tailwindcss/vite"
-
-export default defineConfig({
-  vite: {
-    plugins: [tailwindcss() as any],
-    server: {
-      host: "0.0.0.0",
-      allowedHosts: true,
-    },
-  },
-})

+ 5 - 4
packages/enterprise/package.json

@@ -5,9 +5,10 @@
   "type": "module",
   "scripts": {
     "typecheck": "tsgo --noEmit",
-    "dev": "vinxi dev",
-    "build": "vinxi build",
-    "start": "vinxi start"
+    "dev": "vite dev",
+    "build": "vite build",
+    "build:cloudflare": "OPENCODE_DEPLOYMENT_TARGET=cloudflare vite build",
+    "start": "vite start"
   },
   "dependencies": {
     "@opencode-ai/util": "workspace:*",
@@ -18,8 +19,8 @@
     "hono": "catalog:",
     "hono-openapi": "catalog:",
     "luxon": "catalog:",
+    "nitro": "3.0.1-alpha.1",
     "solid-js": "catalog:",
-    "vinxi": "^0.5.7",
     "zod": "catalog:"
   },
   "devDependencies": {

+ 4 - 0
packages/enterprise/src/global.d.ts

@@ -1 +1,5 @@
 /// <reference types="@solidjs/start/env" />
+
+export declare module "@solidjs/start/server" {
+  export type APIEvent = { request: Request }
+}

+ 1 - 1
packages/enterprise/tsconfig.json

@@ -11,7 +11,7 @@
     "allowJs": true,
     "noEmit": true,
     "strict": true,
-    "types": ["vinxi/types/client"],
+    "types": ["vite/client"],
     "isolatedModules": true,
     "paths": {
       "~/*": ["./src/*"]

+ 26 - 0
packages/enterprise/vite.config.ts

@@ -0,0 +1,26 @@
+import { defineConfig, PluginOption } from "vite"
+import { solidStart } from "@solidjs/start/config"
+import { nitro } from "nitro/vite"
+import tailwindcss from "@tailwindcss/vite"
+
+const nitroConfig = (() => {
+  const target = process.env.OPENCODE_DEPLOYMENT_TARGET
+  if (target === "cloudflare") {
+    return {
+      compatibilityDate: "2024-09-19",
+      preset: "cloudflare_module",
+      cloudflare: {
+        nodeCompat: true,
+      },
+    }
+  }
+  return {}
+})()
+
+export default defineConfig({
+  plugins: [tailwindcss(), solidStart() as PluginOption, nitro(nitroConfig)],
+  server: {
+    host: "0.0.0.0",
+    allowedHosts: true,
+  },
+})

+ 1 - 1
packages/plugin/package.json

@@ -24,4 +24,4 @@
     "typescript": "catalog:",
     "@typescript/native-preview": "catalog:"
   }
-}
+}

+ 1 - 1
packages/sdk/js/package.json

@@ -26,4 +26,4 @@
   "publishConfig": {
     "directory": "dist"
   }
-}
+}

+ 0 - 2
packages/ui/.gitignore

@@ -3,8 +3,6 @@ dist
 .output
 .vercel
 .netlify
-.vinxi
-app.config.timestamp_*.js
 
 # Environment
 .env

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.