@zhin.js/core 1.0.15 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ASYNC-JSX-SUPPORT.md +173 -0
- package/CHANGELOG.md +6 -0
- package/lib/command.d.ts +1 -1
- package/lib/command.d.ts.map +1 -1
- package/lib/component.d.ts.map +1 -1
- package/lib/component.js +8 -2
- package/lib/component.js.map +1 -1
- package/lib/jsx.d.ts +5 -3
- package/lib/jsx.d.ts.map +1 -1
- package/lib/jsx.js +51 -14
- package/lib/jsx.js.map +1 -1
- package/lib/message.d.ts +4 -1
- package/lib/message.d.ts.map +1 -1
- package/lib/message.js.map +1 -1
- package/package.json +3 -3
- package/src/command.ts +1 -1
- package/src/component.ts +7 -3
- package/src/jsx.ts +60 -16
- package/src/message.ts +2 -1
- package/tests/component-new.test.ts +3 -1
- package/tests/jsx.test.ts +25 -6
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# 异步 JSX 组件支持
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
Zhin Core 现在原生支持异步 JSX 组件,允许你像使用普通组件一样使用异步组件,无需额外的类型断言或注释。
|
|
6
|
+
|
|
7
|
+
## 核心改动
|
|
8
|
+
|
|
9
|
+
### 1. 类型系统扩展
|
|
10
|
+
|
|
11
|
+
**`packages/core/src/jsx.ts`**:
|
|
12
|
+
- 修改 `JSX.Element` 类型为联合类型,支持 `Promise<SendContent>`
|
|
13
|
+
- `renderJSX` 函数自动检测并 await Promise 返回值
|
|
14
|
+
- 错误时自动捕获并返回错误信息
|
|
15
|
+
|
|
16
|
+
**`packages/core/src/message.ts`**:
|
|
17
|
+
- `MessageComponent` 类型支持异步组件函数
|
|
18
|
+
|
|
19
|
+
### 2. 运行时支持
|
|
20
|
+
|
|
21
|
+
**自动 Promise 处理**:
|
|
22
|
+
```typescript
|
|
23
|
+
export async function renderJSX(element: MessageComponent<any>, context?: ComponentContext): Promise<SendContent> {
|
|
24
|
+
try {
|
|
25
|
+
// ... 组件渲染逻辑
|
|
26
|
+
const result = await component(element.data, context || {} as ComponentContext);
|
|
27
|
+
|
|
28
|
+
// 如果组件返回 Promise,自动 await
|
|
29
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
30
|
+
return await result;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return result;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
// 渲染错误时返回错误信息
|
|
36
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
37
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**子组件 Promise 处理**:
|
|
43
|
+
```typescript
|
|
44
|
+
async function renderChildren(children: JSXChildren, context?: ComponentContext): Promise<SendContent> {
|
|
45
|
+
// ...
|
|
46
|
+
// 如果子元素是 Promise,自动 await
|
|
47
|
+
if (children && typeof children === 'object' && 'then' in children) {
|
|
48
|
+
try {
|
|
49
|
+
return await children;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## 使用方式
|
|
58
|
+
|
|
59
|
+
### 定义异步组件
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import { defineComponent, addComponent } from 'zhin.js';
|
|
63
|
+
|
|
64
|
+
const AsyncComponent = defineComponent(async function AsyncComponent({ userId }: { userId: string }) {
|
|
65
|
+
// 执行异步操作
|
|
66
|
+
const user = await fetchUserFromDatabase(userId);
|
|
67
|
+
const profile = await fetchUserProfile(userId);
|
|
68
|
+
|
|
69
|
+
return `👤 ${user.name}\n📧 ${profile.email}`;
|
|
70
|
+
}, 'AsyncComponent');
|
|
71
|
+
|
|
72
|
+
addComponent(AsyncComponent);
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 在 JSX 中使用(现在完全类型安全)
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
addCommand(
|
|
79
|
+
new MessageCommand('用户 <userId:text>')
|
|
80
|
+
.action(async (message, result) => {
|
|
81
|
+
// ✅ 直接使用 JSX 语法,无需 @ts-expect-error
|
|
82
|
+
return <AsyncComponent userId={result.params.userId} />
|
|
83
|
+
})
|
|
84
|
+
);
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 嵌套异步组件
|
|
88
|
+
|
|
89
|
+
```tsx
|
|
90
|
+
const UserProfile = defineComponent(async function UserProfile({ userId }: { userId: string }) {
|
|
91
|
+
const user = await fetchUser(userId);
|
|
92
|
+
|
|
93
|
+
// 嵌套使用其他异步组件
|
|
94
|
+
return (
|
|
95
|
+
<div>
|
|
96
|
+
<h1>{user.name}</h1>
|
|
97
|
+
<AsyncComponent userId={userId} />
|
|
98
|
+
</div>
|
|
99
|
+
);
|
|
100
|
+
}, 'UserProfile');
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 错误处理
|
|
104
|
+
|
|
105
|
+
异步组件中的错误会自动被捕获并返回友好的错误信息:
|
|
106
|
+
|
|
107
|
+
```tsx
|
|
108
|
+
const FailingComponent = defineComponent(async function FailingComponent() {
|
|
109
|
+
throw new Error('数据加载失败');
|
|
110
|
+
}, 'FailingComponent');
|
|
111
|
+
|
|
112
|
+
// 使用时会自动返回: "❌ 组件渲染失败: 数据加载失败"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## 性能考虑
|
|
116
|
+
|
|
117
|
+
- **自动 await**:框架自动检测 Promise 并等待,无额外开销
|
|
118
|
+
- **并行渲染**:多个异步组件可以并行加载(使用 `Promise.all`)
|
|
119
|
+
- **错误隔离**:单个组件错误不会影响整体渲染
|
|
120
|
+
|
|
121
|
+
## 迁移指南
|
|
122
|
+
|
|
123
|
+
如果你之前使用了 `@ts-expect-error` 或直接函数调用:
|
|
124
|
+
|
|
125
|
+
```tsx
|
|
126
|
+
// ❌ 旧方式(已废弃)
|
|
127
|
+
return await ShareMusic({ platform: 'qq', musicId: '123' });
|
|
128
|
+
|
|
129
|
+
// ✅ 新方式(推荐)
|
|
130
|
+
return <ShareMusic platform="qq" musicId="123" />
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## TypeScript 类型
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// JSX.Element 现在支持 Promise
|
|
137
|
+
declare global {
|
|
138
|
+
namespace JSX {
|
|
139
|
+
type Element = MessageComponent<any> | Promise<MessageComponent<any>> | Promise<SendContent>
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// MessageComponent 支持异步函数
|
|
144
|
+
export type MessageComponent<T extends object> = {
|
|
145
|
+
type: Component<T & {children?: SendContent}> | ((props: T & {children?: SendContent}) => Promise<SendContent>)
|
|
146
|
+
data: T
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## 测试
|
|
151
|
+
|
|
152
|
+
确保你的异步组件正确工作:
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
import { describe, it, expect } from 'vitest';
|
|
156
|
+
|
|
157
|
+
describe('Async Components', () => {
|
|
158
|
+
it('should render async component', async () => {
|
|
159
|
+
const result = await renderJSX(<AsyncComponent userId="123" />);
|
|
160
|
+
expect(result).toBe('👤 User Name\n📧 user@example.com');
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
it('should handle errors gracefully', async () => {
|
|
164
|
+
const result = await renderJSX(<FailingComponent />);
|
|
165
|
+
expect(result).toMatch(/❌ 组件渲染失败/);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
**版本**: 1.0.15+
|
|
173
|
+
**文档更新**: 2025-11-19
|
package/CHANGELOG.md
CHANGED
package/lib/command.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare class MessageCommand<T extends keyof RegisteredAdapters = keyof R
|
|
|
25
25
|
handle(message: Message<AdapterMessage<T>>, app: App): Promise<SendContent | undefined>;
|
|
26
26
|
}
|
|
27
27
|
export declare namespace MessageCommand {
|
|
28
|
-
type Callback<T extends keyof RegisteredAdapters> = (message: Message<AdapterMessage<T>>, result: MatchResult) =>
|
|
28
|
+
type Callback<T extends keyof RegisteredAdapters> = (message: Message<AdapterMessage<T>>, result: MatchResult) => SendContent | undefined | Promise<SendContent | undefined>;
|
|
29
29
|
type Checker<T extends keyof RegisteredAdapters> = (message: Message<AdapterMessage<T>>) => MaybePromise<boolean>;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=command.d.ts.map
|
package/lib/command.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,kBAAkB,GAAC,MAAM,kBAAkB,CAAE,SAAQ,cAAc;;IAI3G;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAEvB,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,CAAC,GAAG,WAAW,EAAC,MAAM,EAAE,GAEX,cAAc,CAAC,CAAC,CAAC;IAEpC;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,GAAE,OAAO,CAAC,WAAW,GAAC,SAAS,CAAC;CAoB1F;AACD,yBAAiB,cAAc,CAAA;IAC3B,KAAY,QAAQ,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAE,CAAC,OAAO,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,WAAW,KAAG,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../src/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAE,WAAW,EAAC,MAAM,YAAY,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,MAAM,kBAAkB,GAAC,MAAM,kBAAkB,CAAE,SAAQ,cAAc;;IAI3G;;;OAGG;IACH,MAAM,CAAC,QAAQ,EAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,GAEvB,cAAc,CAAC,CAAC,CAAC;IAEpC,MAAM,CAAC,GAAG,WAAW,EAAC,MAAM,EAAE,GAEX,cAAc,CAAC,CAAC,CAAC;IAEpC;;;;;OAKG;IACG,MAAM,CAAC,OAAO,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,GAAG,GAAE,OAAO,CAAC,WAAW,GAAC,SAAS,CAAC;CAoB1F;AACD,yBAAiB,cAAc,CAAA;IAC3B,KAAY,QAAQ,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAE,CAAC,OAAO,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,WAAW,KAAG,WAAW,GAAC,SAAS,GAAC,OAAO,CAAC,WAAW,GAAC,SAAS,CAAC,CAAC;IACvK,KAAY,OAAO,CAAC,CAAC,SAAS,MAAM,kBAAkB,IAAE,CAAC,OAAO,EAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAG,YAAY,CAAC,OAAO,CAAC,CAAA;CACtH"}
|
package/lib/component.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAI5E,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,eAAO,MAAM,YAAY,eAAyB,CAAC;AAGnD,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI;IAC7B,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAID,MAAM,WAAW,gBAAgB;IAE7B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAGxF,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAGtB,MAAM,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAGpC,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;IACpC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAGD,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EACnC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,IAAI,GAAE,MAAuB,GAC9B,SAAS,CAAC,CAAC,CAAC,CAad;AAGD,wBAAgB,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWpF;AAGD,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,CAAC,CA6FrG;AAuRD,wBAAgB,sBAAsB,CAClC,KAAK,GAAE,IAAS,EAChB,MAAM,CAAC,EAAE,gBAAgB,EACzB,IAAI,GAAE,MAAW,GAClB,gBAAgB,CAuBlB;AACD,wBAAsB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGzI;AAED,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACpC,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAkB,MAAM,YAAY,CAAC;AAI5E,eAAO,MAAM,YAAY,eAAyB,CAAC;AACnD,eAAO,MAAM,YAAY,eAAyB,CAAC;AAGnD,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,GAAG,IAAI;IAC7B,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;CAChB,CAAA;AAID,MAAM,WAAW,gBAAgB;IAE7B,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAGxF,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAGtB,MAAM,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAGpC,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,CAAC;IACpC,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAGD,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EACnC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,IAAI,GAAE,MAAuB,GAC9B,SAAS,CAAC,CAAC,CAAC,CAad;AAGD,wBAAgB,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWpF;AAGD,wBAAgB,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,CAAC,CA6FrG;AAuRD,wBAAgB,sBAAsB,CAClC,KAAK,GAAE,IAAS,EAChB,MAAM,CAAC,EAAE,gBAAgB,EACzB,IAAI,GAAE,MAAW,GAClB,gBAAgB,CAuBlB;AACD,wBAAsB,eAAe,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGzI;AAED,wBAAsB,gBAAgB,CAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EACpC,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,WAAW,CAAC,CAkElB;AAGL,eAAO,MAAM,QAAQ;eAA8C,WAAW;EAchE,CAAC;AACf,eAAO,MAAM,KAAK,gBAEP,CAAC"}
|
package/lib/component.js
CHANGED
|
@@ -424,8 +424,14 @@ export async function renderComponents(componentMap, options, customContext) {
|
|
|
424
424
|
if (match) {
|
|
425
425
|
// 创建组件特定的上下文
|
|
426
426
|
const componentContext = createComponentContext(context.props, context, result);
|
|
427
|
-
|
|
428
|
-
|
|
427
|
+
let SendContent;
|
|
428
|
+
try {
|
|
429
|
+
SendContent = await renderComponent(comp, match, componentContext);
|
|
430
|
+
}
|
|
431
|
+
catch (error) {
|
|
432
|
+
SendContent = `[${comp.name} Error: ${error?.message || String(error)}]`;
|
|
433
|
+
}
|
|
434
|
+
const renderedString = typeof SendContent === 'string' ? SendContent : segment.toString(SendContent);
|
|
429
435
|
result = result.replace(match, renderedString);
|
|
430
436
|
hasChanges = true;
|
|
431
437
|
break; // 处理一个组件后重新开始循环
|
package/lib/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
|
package/lib/jsx.d.ts
CHANGED
|
@@ -10,8 +10,7 @@ export type JSXProps = Record<string, any> & {
|
|
|
10
10
|
export { Fragment } from './component.js';
|
|
11
11
|
declare global {
|
|
12
12
|
namespace JSX {
|
|
13
|
-
|
|
14
|
-
}
|
|
13
|
+
type Element = MessageComponent<any> | Promise<MessageComponent<any>> | Promise<SendContent>;
|
|
15
14
|
interface ElementClass {
|
|
16
15
|
render(props: any, context?: ComponentContext): MaybePromise<SendContent>;
|
|
17
16
|
}
|
|
@@ -24,9 +23,12 @@ declare global {
|
|
|
24
23
|
interface IntrinsicElements {
|
|
25
24
|
[elemName: string]: any;
|
|
26
25
|
}
|
|
26
|
+
interface IntrinsicAttributes {
|
|
27
|
+
key?: string | number;
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
|
-
export declare function jsx(type: JSXElementType, data: JSXProps):
|
|
31
|
+
export declare function jsx(type: JSXElementType, data: JSXProps): MessageComponent<any>;
|
|
30
32
|
export declare function jsxs(type: JSXElementType, props: JSXProps): MessageElement;
|
|
31
33
|
export declare function renderJSX(element: MessageComponent<any>, context?: ComponentContext): Promise<SendContent>;
|
|
32
34
|
//# sourceMappingURL=jsx.d.ts.map
|
package/lib/jsx.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAC,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI7D,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;AAGxG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAE;AAGtD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IACzC,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B,CAAC;AACF,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAEvC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAC,cAAc,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAI7D,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,EAAE,CAAC;AAGxG,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAE;AAGtD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG;IACzC,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B,CAAC;AACF,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAEvC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,GAAG,CAAC;QAGV,KAAK,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;QAC5F,UAAU,YAAY;YAClB,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;SAC7E;QACD,UAAU,yBAAyB;YAC/B,IAAI,EAAE,EAAE,CAAC;SACZ;QACD,UAAU,wBAAwB;YAC9B,QAAQ,EAAE,EAAE,CAAC;SAChB;QACD,UAAU,iBAAiB;YACvB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC;SAC3B;QAED,UAAU,mBAAmB;YACzB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;SACzB;KACJ;CACJ;AAGD,wBAAgB,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAK/E;AAGD,wBAAgB,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,GAAG,cAAc,CAE1E;AAID,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC,CAoChH"}
|
package/lib/jsx.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { Fragment } from './component.js';
|
|
2
|
-
// JSX 运行时函数
|
|
2
|
+
// JSX 运行时函数 - 支持异步组件
|
|
3
3
|
export function jsx(type, data) {
|
|
4
4
|
return {
|
|
5
5
|
type,
|
|
@@ -12,22 +12,39 @@ export function jsxs(type, props) {
|
|
|
12
12
|
}
|
|
13
13
|
// JSX 渲染函数
|
|
14
14
|
export async function renderJSX(element, context) {
|
|
15
|
-
|
|
16
|
-
if (element.type === '
|
|
15
|
+
try {
|
|
16
|
+
if (typeof element.type === 'string') {
|
|
17
|
+
if (element.type === 'Fragment') {
|
|
18
|
+
return await renderChildren(element.data.children, context);
|
|
19
|
+
}
|
|
20
|
+
// 其他内置组件处理
|
|
17
21
|
return await renderChildren(element.data.children, context);
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
else if (typeof element.type === 'function') {
|
|
24
|
+
// 函数组件
|
|
25
|
+
const component = element.type;
|
|
26
|
+
const result = await component(element.data, context || {});
|
|
27
|
+
// 如果组件返回 Promise,自动 await
|
|
28
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
29
|
+
return await result;
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// 类组件或其他类型
|
|
35
|
+
const component = element.type;
|
|
36
|
+
const result = await component(element.data, context || {});
|
|
37
|
+
// 如果组件返回 Promise,自动 await
|
|
38
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
39
|
+
return await result;
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}
|
|
26
43
|
}
|
|
27
|
-
|
|
28
|
-
//
|
|
29
|
-
const
|
|
30
|
-
return
|
|
44
|
+
catch (error) {
|
|
45
|
+
// 渲染错误时返回错误信息
|
|
46
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
47
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
31
48
|
}
|
|
32
49
|
}
|
|
33
50
|
// 渲染子元素
|
|
@@ -45,6 +62,16 @@ async function renderChildren(children, context) {
|
|
|
45
62
|
if (child && typeof child === 'object' && 'type' in child) {
|
|
46
63
|
return await renderJSX(child, context);
|
|
47
64
|
}
|
|
65
|
+
// 如果子元素是 Promise,自动 await
|
|
66
|
+
if (child && typeof child === 'object' && 'then' in child) {
|
|
67
|
+
try {
|
|
68
|
+
return await child;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
72
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
48
75
|
return '';
|
|
49
76
|
}));
|
|
50
77
|
return results.join('');
|
|
@@ -52,6 +79,16 @@ async function renderChildren(children, context) {
|
|
|
52
79
|
if (children && typeof children === 'object' && 'type' in children) {
|
|
53
80
|
return await renderJSX(children, context);
|
|
54
81
|
}
|
|
82
|
+
// 如果子元素是 Promise,自动 await
|
|
83
|
+
if (children && typeof children === 'object' && 'then' in children) {
|
|
84
|
+
try {
|
|
85
|
+
return await children;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
89
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
55
92
|
return '';
|
|
56
93
|
}
|
|
57
94
|
//# sourceMappingURL=jsx.js.map
|
package/lib/jsx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AA0BvC,qBAAqB;AACrB,MAAM,UAAU,GAAG,CAAC,IAAoB,EAAE,IAAc;IACpD,OAAO;QACH,IAAI;QACJ,IAAI;KACkB,CAAC;AAC/B,CAAC;AAED,kBAAkB;AAClB,MAAM,UAAU,IAAI,CAAC,IAAoB,EAAE,KAAe;IACtD,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAGD,WAAW;AACX,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA8B,EAAE,OAA0B;IACtF,IAAI,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC9B,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;YACD,WAAW;YACX,OAAO,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO;YACP,MAAM,SAAS,GAAG,OAAO,CAAC,IAAsB,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,EAAsB,CAAC,CAAC;YAEhF,0BAA0B;YAC1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBAC3D,OAAO,MAAM,MAAM,CAAC;YACxB,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,CAAC;YACJ,WAAW;YACX,MAAM,SAAS,GAAG,OAAO,CAAC,IAAsB,CAAC;YACjD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,IAAI,EAAsB,CAAC,CAAC;YAEhF,0BAA0B;YAC1B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;gBAC3D,OAAO,MAAM,MAAM,CAAC;YACxB,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAc;QACd,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,aAAa,YAAY,EAAE,CAAC;IACvC,CAAC;AACL,CAAC;AAED,QAAQ;AACR,KAAK,UAAU,cAAc,CAAC,QAAqB,EAAE,OAA0B;IAC3E,IAAI,QAAQ,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAChC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChG,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACxD,OAAO,MAAM,SAAS,CAAC,KAA8B,EAAE,OAAO,CAAC,CAAC;YACpE,CAAC;YACD,0BAA0B;YAC1B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACD,OAAO,MAAM,KAAK,CAAC;gBACvB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC5E,OAAO,aAAa,YAAY,EAAE,CAAC;gBACvC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACjE,OAAO,MAAM,SAAS,CAAC,QAAiC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,0BAA0B;IAC1B,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACjE,IAAI,CAAC;YACD,OAAO,MAAM,QAAQ,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,aAAa,YAAY,EAAE,CAAC;QACvC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,CAAC;AACd,CAAC"}
|
package/lib/message.d.ts
CHANGED
|
@@ -2,11 +2,14 @@ import { MessageElement, MessageSender, SendContent } from "./types";
|
|
|
2
2
|
import { Component } from "./component.js";
|
|
3
3
|
/**
|
|
4
4
|
* 消息组件类型:用于自定义消息结构
|
|
5
|
+
* 支持同步和异步组件
|
|
5
6
|
*/
|
|
6
7
|
export type MessageComponent<T extends object> = {
|
|
7
8
|
type: Component<T & {
|
|
8
9
|
children?: SendContent;
|
|
9
|
-
}
|
|
10
|
+
}> | ((props: T & {
|
|
11
|
+
children?: SendContent;
|
|
12
|
+
}) => Promise<SendContent>);
|
|
10
13
|
data: T;
|
|
11
14
|
};
|
|
12
15
|
/**
|
package/lib/message.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,aAAa,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAE;IAC3C,IAAI,EAAC,SAAS,CAAC,CAAC,GAAC;QAAC,QAAQ,CAAC,EAAC,WAAW,CAAA;KAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG;QAAC,QAAQ,CAAC,EAAE,WAAW,CAAA;KAAC,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAA;IAC3G,IAAI,EAAC,CAAC,CAAA;CACT,CAAA;AACD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;CACrB;AACD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;AACzD;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAC,MAAM,CAAA;IACf,IAAI,EAAC,MAAM,CAAA;IACX,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,CAAC,OAAO,EAAC,WAAW,EAAC,KAAK,CAAC,EAAC,OAAO,GAAC,MAAM,GAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACjE,OAAO,IAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AACD;;GAEG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAC,EAAE,IAAE,WAAW,GAAC,CAAC,CAAC;AACvD,yBAAiB,OAAO,CAAA;IACpB;;OAEG;IACH,SAAgB,IAAI,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAC,CAAC,EAAC,MAAM,EAAC,WAAW,GAAE,OAAO,CAAC,CAAC,CAAC,CAE5E;CACJ"}
|
package/lib/message.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../src/message.ts"],"names":[],"mappings":"AAyCA,MAAM,KAAW,OAAO,CAOvB;AAPD,WAAiB,OAAO;IACpB;;OAEG;IACH,SAAgB,IAAI,CAAmB,KAAO,EAAC,MAAkB;QAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAC,MAAM,CAAC,CAAA;IACtC,CAAC;IAFe,YAAI,OAEnB,CAAA;AACL,CAAC,EAPgB,OAAO,KAAP,OAAO,QAOvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.16",
|
|
4
4
|
"description": "Zhin机器人核心框架",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"toml": "^3.0.0",
|
|
30
30
|
"dotenv": "^16.3.1",
|
|
31
31
|
"cron-parser": "latest",
|
|
32
|
-
"@zhin.js/
|
|
33
|
-
"@zhin.js/
|
|
32
|
+
"@zhin.js/hmr": "1.0.7",
|
|
33
|
+
"@zhin.js/database": "1.0.4"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"@zhin.js/logger": "0.1.1"
|
package/src/command.ts
CHANGED
|
@@ -54,6 +54,6 @@ export class MessageCommand<T extends keyof RegisteredAdapters=keyof RegisteredA
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
export namespace MessageCommand{
|
|
57
|
-
export type Callback<T extends keyof RegisteredAdapters>=(message:Message<AdapterMessage<T>>,result:MatchResult)=>
|
|
57
|
+
export type Callback<T extends keyof RegisteredAdapters>=(message:Message<AdapterMessage<T>>,result:MatchResult)=>SendContent|undefined|Promise<SendContent|undefined>;
|
|
58
58
|
export type Checker<T extends keyof RegisteredAdapters>=(message:Message<AdapterMessage<T>>)=>MaybePromise<boolean>
|
|
59
59
|
}
|
package/src/component.ts
CHANGED
|
@@ -512,9 +512,13 @@ export async function renderComponents(
|
|
|
512
512
|
context,
|
|
513
513
|
result
|
|
514
514
|
);
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
515
|
+
let SendContent;
|
|
516
|
+
try{
|
|
517
|
+
SendContent = await renderComponent(comp, match, componentContext);
|
|
518
|
+
}catch(error){
|
|
519
|
+
SendContent = `[${comp.name} Error: ${(error as Error)?.message||String(error)}]`
|
|
520
|
+
}
|
|
521
|
+
const renderedString = typeof SendContent === 'string' ? SendContent : segment.toString(SendContent as MessageElement);
|
|
518
522
|
result = result.replace(match, renderedString);
|
|
519
523
|
hasChanges = true;
|
|
520
524
|
break; // 处理一个组件后重新开始循环
|
package/src/jsx.ts
CHANGED
|
@@ -18,7 +18,9 @@ export {Fragment} from './component.js'
|
|
|
18
18
|
// 全局 JSX 命名空间
|
|
19
19
|
declare global {
|
|
20
20
|
namespace JSX {
|
|
21
|
-
|
|
21
|
+
// 支持同步和异步组件 - Element 可以是 MessageComponent
|
|
22
|
+
// TypeScript 会在编译时允许异步组件,运行时会自动 await
|
|
23
|
+
type Element = MessageComponent<any> | Promise<MessageComponent<any>> | Promise<SendContent>
|
|
22
24
|
interface ElementClass {
|
|
23
25
|
render(props: any, context?: ComponentContext): MaybePromise<SendContent>;
|
|
24
26
|
}
|
|
@@ -31,15 +33,19 @@ declare global {
|
|
|
31
33
|
interface IntrinsicElements {
|
|
32
34
|
[elemName: string]: any;
|
|
33
35
|
}
|
|
36
|
+
// 添加对异步组件的支持
|
|
37
|
+
interface IntrinsicAttributes {
|
|
38
|
+
key?: string | number;
|
|
39
|
+
}
|
|
34
40
|
}
|
|
35
41
|
}
|
|
36
42
|
|
|
37
|
-
// JSX 运行时函数
|
|
38
|
-
export function jsx(type: JSXElementType, data: JSXProps):
|
|
43
|
+
// JSX 运行时函数 - 支持异步组件
|
|
44
|
+
export function jsx(type: JSXElementType, data: JSXProps): MessageComponent<any> {
|
|
39
45
|
return {
|
|
40
46
|
type,
|
|
41
47
|
data,
|
|
42
|
-
} as
|
|
48
|
+
} as MessageComponent<any>;
|
|
43
49
|
}
|
|
44
50
|
|
|
45
51
|
// JSX Fragment 支持
|
|
@@ -50,20 +56,40 @@ export function jsxs(type: JSXElementType, props: JSXProps): MessageElement {
|
|
|
50
56
|
|
|
51
57
|
// JSX 渲染函数
|
|
52
58
|
export async function renderJSX(element: MessageComponent<any>, context?: ComponentContext): Promise<SendContent> {
|
|
53
|
-
|
|
54
|
-
if (element.type === '
|
|
59
|
+
try {
|
|
60
|
+
if (typeof element.type === 'string') {
|
|
61
|
+
if (element.type === 'Fragment') {
|
|
62
|
+
return await renderChildren(element.data.children, context);
|
|
63
|
+
}
|
|
64
|
+
// 其他内置组件处理
|
|
55
65
|
return await renderChildren(element.data.children, context);
|
|
66
|
+
} else if (typeof element.type === 'function') {
|
|
67
|
+
// 函数组件
|
|
68
|
+
const component = element.type as Component<any>;
|
|
69
|
+
const result = await component(element.data, context || {} as ComponentContext);
|
|
70
|
+
|
|
71
|
+
// 如果组件返回 Promise,自动 await
|
|
72
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
73
|
+
return await result;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return result;
|
|
77
|
+
} else {
|
|
78
|
+
// 类组件或其他类型
|
|
79
|
+
const component = element.type as Component<any>;
|
|
80
|
+
const result = await component(element.data, context || {} as ComponentContext);
|
|
81
|
+
|
|
82
|
+
// 如果组件返回 Promise,自动 await
|
|
83
|
+
if (result && typeof result === 'object' && 'then' in result) {
|
|
84
|
+
return await result;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return result;
|
|
56
88
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const component = element.type as Component<any>;
|
|
62
|
-
return await component(element.data, context || {} as ComponentContext);
|
|
63
|
-
} else {
|
|
64
|
-
// 类组件或其他类型
|
|
65
|
-
const component = element.type as Component<any>;
|
|
66
|
-
return await component(element.data, context || {} as ComponentContext);
|
|
89
|
+
} catch (error) {
|
|
90
|
+
// 渲染错误时返回错误信息
|
|
91
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
92
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
67
93
|
}
|
|
68
94
|
}
|
|
69
95
|
|
|
@@ -81,6 +107,15 @@ async function renderChildren(children: JSXChildren, context?: ComponentContext)
|
|
|
81
107
|
if (child && typeof child === 'object' && 'type' in child) {
|
|
82
108
|
return await renderJSX(child as MessageComponent<any>, context);
|
|
83
109
|
}
|
|
110
|
+
// 如果子元素是 Promise,自动 await
|
|
111
|
+
if (child && typeof child === 'object' && 'then' in child) {
|
|
112
|
+
try {
|
|
113
|
+
return await child;
|
|
114
|
+
} catch (error) {
|
|
115
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
116
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
84
119
|
return '';
|
|
85
120
|
}));
|
|
86
121
|
return results.join('');
|
|
@@ -88,5 +123,14 @@ async function renderChildren(children: JSXChildren, context?: ComponentContext)
|
|
|
88
123
|
if (children && typeof children === 'object' && 'type' in children) {
|
|
89
124
|
return await renderJSX(children as MessageComponent<any>, context);
|
|
90
125
|
}
|
|
126
|
+
// 如果子元素是 Promise,自动 await
|
|
127
|
+
if (children && typeof children === 'object' && 'then' in children) {
|
|
128
|
+
try {
|
|
129
|
+
return await children;
|
|
130
|
+
} catch (error) {
|
|
131
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
132
|
+
return `❌ 组件渲染失败: ${errorMessage}`;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
91
135
|
return '';
|
|
92
136
|
}
|
package/src/message.ts
CHANGED
|
@@ -3,9 +3,10 @@ import { Component } from "./component.js";
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 消息组件类型:用于自定义消息结构
|
|
6
|
+
* 支持同步和异步组件
|
|
6
7
|
*/
|
|
7
8
|
export type MessageComponent<T extends object>={
|
|
8
|
-
type:Component<T&{children?:SendContent}>
|
|
9
|
+
type:Component<T&{children?:SendContent}> | ((props: T & {children?: SendContent}) => Promise<SendContent>)
|
|
9
10
|
data:T
|
|
10
11
|
}
|
|
11
12
|
/**
|
|
@@ -342,7 +342,9 @@ describe('函数式组件系统测试', () => {
|
|
|
342
342
|
bot: 'test'
|
|
343
343
|
}
|
|
344
344
|
|
|
345
|
-
await
|
|
345
|
+
const result = await renderComponents(componentMap, options)
|
|
346
|
+
// 错误会被捕获并转换为错误消息
|
|
347
|
+
expect(result.content).toMatch(/\[error Error: Test error\]/)
|
|
346
348
|
})
|
|
347
349
|
})
|
|
348
350
|
})
|
package/tests/jsx.test.ts
CHANGED
|
@@ -218,15 +218,15 @@ describe('JSX消息组件系统测试', () => {
|
|
|
218
218
|
})
|
|
219
219
|
|
|
220
220
|
describe('错误处理', () => {
|
|
221
|
-
it('
|
|
221
|
+
it('应该捕获组件执行错误并返回错误消息', async () => {
|
|
222
222
|
const ErrorComponent: Component<{}> = async () => {
|
|
223
223
|
throw new Error('Component error')
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
const element = jsx(ErrorComponent, {})
|
|
227
227
|
|
|
228
|
-
await
|
|
229
|
-
|
|
228
|
+
const result = await renderJSX(element as MessageComponent<any>, mockContext)
|
|
229
|
+
expect(result).toBe('❌ 组件渲染失败: Component error')
|
|
230
230
|
})
|
|
231
231
|
|
|
232
232
|
it('应该处理无效的元素类型', async () => {
|
|
@@ -235,9 +235,28 @@ describe('JSX消息组件系统测试', () => {
|
|
|
235
235
|
data: { children: 'test' }
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
const result = await renderJSX(invalidElement as MessageComponent<any>, mockContext)
|
|
239
|
+
expect(result).toMatch(/❌ 组件渲染失败/)
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
it('应该处理异步组件返回 Promise 的情况', async () => {
|
|
243
|
+
const AsyncPromiseComponent: Component<{ text: string }> = async (props) => {
|
|
244
|
+
// 返回一个 Promise(会被自动 await)
|
|
245
|
+
return Promise.resolve(`Async: ${props.text}`)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
const element = jsx(AsyncPromiseComponent, { text: 'test' })
|
|
249
|
+
const result = await renderJSX(element as MessageComponent<any>, mockContext)
|
|
250
|
+
|
|
251
|
+
expect(result).toBe('Async: test')
|
|
252
|
+
})
|
|
253
|
+
|
|
254
|
+
it('应该处理子组件为 Promise 的情况', async () => {
|
|
255
|
+
const AsyncChild = Promise.resolve('Async Child Content')
|
|
256
|
+
const element = jsx('div', { children: [AsyncChild] })
|
|
257
|
+
|
|
258
|
+
const result = await renderJSX(element as MessageComponent<any>, mockContext)
|
|
259
|
+
expect(result).toBe('Async Child Content')
|
|
241
260
|
})
|
|
242
261
|
})
|
|
243
262
|
|