Browse Source

Merge remote-tracking branch 'upstream/main'

yourname 7 months ago
parent
commit
0a2e2d7507
3 changed files with 82 additions and 36 deletions
  1. 1 1
      server/app.tsx
  2. 81 0
      server/run_app.ts
  3. 0 35
      test.log

+ 1 - 1
server/app.tsx

@@ -226,7 +226,7 @@ export type WithAuth = typeof withAuth;
 // 定义模块参数接口
 interface ModuleParams {
   apiClient: APIClient
-  app: Hono<{ Variables: Variables }>
+  app: Hono
   moduleDir: string
 }
 

+ 81 - 0
server/run_app.ts

@@ -0,0 +1,81 @@
+// 导入所需模块
+import { Hono } from 'hono'
+import { APIClient } from '@d8d-appcontainer/api'
+import debug from "debug"
+import { cors } from 'hono/cors'
+
+// 初始化debug实例
+const log = {
+  app: debug('app:server'),
+  auth: debug('auth:server'),
+  api: debug('api:server'),
+  debug: debug('debug:server')
+}
+
+// 启用所有日志
+Object.values(log).forEach(logger => logger.enabled = true)
+
+// 初始化 API Client
+const getApiClient = async (workspaceKey: string, serverUrl?: string) => {
+  try {
+    log.api('正在初始化API Client实例')
+    
+    const apiClient = await APIClient.getInstance({
+      scope: 'user',
+      config: {
+        serverUrl: serverUrl || Deno.env.get('SERVER_URL') || 'https://app-server.d8d.fun',
+        workspaceKey: workspaceKey,
+        type: 'http',
+      }
+    })
+    
+    log.api('API Client初始化成功')
+    return apiClient
+  } catch (error) {
+    log.api('API Client初始化失败:', error)
+    throw error
+  }
+}
+
+// 创建Hono应用实例
+const app = new Hono()
+
+// 注册CORS中间件
+app.use('/*', cors())
+
+// 动态加载并运行模板
+const runTemplate = async () => {
+  try {
+    // 创建基础app实例
+    const moduleApp = new Hono()
+    
+    // 初始化API Client
+    // 注意:WORKSPACE_KEY 需要在 多八多(www.d8d.fun) 平台注册并开通工作空间后获取
+    const workspaceKey = Deno.env.get('WORKSPACE_KEY') || ''
+    if (!workspaceKey) {
+      console.warn('未设置WORKSPACE_KEY,请前往 多八多(www.d8d.fun) 注册并开通工作空间以获取密钥')
+    }
+    const apiClient = await getApiClient(workspaceKey)
+    
+    // 导入模板主模块
+    const templateModule = await import('./app.tsx')
+    
+    if (templateModule.default) {
+      // 传入必要参数并初始化应用
+      const appInstance = templateModule.default({
+        apiClient: apiClient,
+        app: moduleApp,
+        moduleDir: './admin-mobile-starter'
+      })
+      
+      // 启动服务器
+      Deno.serve({ port: 8000 }, appInstance.fetch)
+      console.log('应用已启动,监听端口: 8000')
+    }
+  } catch (error) {
+    console.error('模板加载失败:', error)
+  }
+}
+
+// 执行模板
+runTemplate()

+ 0 - 35
test.log

@@ -1,35 +0,0 @@
-running 1 test from ./client/admin/pages_know_info.test.tsx
-知识库管理页面测试 ...
-  应正确渲染页面元素 ... ok (2s)
-  初始加载表格数据 ... ok (729ms)
-  搜索表单应正常工作 ... ok (1s)
-  表格应加载并显示数据 ... ok (38ms)
-  应能打开添加文章模态框 ...
-------- output -------
-<div
-  class="ant-modal-title"
-  id=":rq:"
->
-  添加知识库文章
-</div>
------ output end -----
-  应能打开添加文章模态框 ... ok (298ms)
-  应能完整添加一篇文章 ...
-------- output -------
-<input
-  aria-required="true"
-  class="ant-input css-dev-only-do-not-override-1a3rktk ant-input-outlined"
-  id="title"
-  placeholder="请输入文章标题"
-  type="text"
-  value=""
-/>
-<textarea
-  aria-required="true"
-  class="ant-input css-dev-only-do-not-override-1a3rktk ant-input-outlined"
-  id="content"
-  placeholder="请输入文章内容,支持Markdown格式"
-  rows="15"
-/>
-<span>
-  确 定