ifs-code-tools 1.0.1
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/README.md +115 -0
- package/dist/index.cjs +9987 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +167 -0
- package/dist/index.d.ts +167 -0
- package/dist/index.js +9985 -0
- package/dist/index.js.map +1 -0
- package/package.json +31 -0
package/README.md
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# ifs-code-tools
|
|
2
|
+
|
|
3
|
+
IFS Code 工具库,提供 Widget 加载能力,用于在第三方平台嵌入 Widget。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install ifs-code-tools
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## API 文档
|
|
12
|
+
|
|
13
|
+
### Widget
|
|
14
|
+
|
|
15
|
+
#### loadWidget - 加载并挂载 Widget
|
|
16
|
+
|
|
17
|
+
```js
|
|
18
|
+
import { widget } from 'ifs-code-tools';
|
|
19
|
+
|
|
20
|
+
// 方式一:通过 url 加载
|
|
21
|
+
const instance = await widget.loadWidget({
|
|
22
|
+
url: 'https://cdn.example.com/widgets/my-widget',
|
|
23
|
+
container: '#widget-container',
|
|
24
|
+
props: { theme: 'dark' },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// 方式二:通过 appId 加载
|
|
28
|
+
const instance = await widget.loadWidget({
|
|
29
|
+
appId: 'my-app-id',
|
|
30
|
+
container: '#widget-container',
|
|
31
|
+
props: { theme: 'dark' },
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// 更新 props
|
|
35
|
+
instance.update({ theme: 'light' });
|
|
36
|
+
|
|
37
|
+
// 卸载
|
|
38
|
+
instance.unmount();
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**参数 (LoadWidgetOptions):**
|
|
42
|
+
|
|
43
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
44
|
+
| --- | --- | --- | --- |
|
|
45
|
+
| url | `string` | 与 appId 二选一 | Widget 根目录地址 |
|
|
46
|
+
| appId | `string` | 与 url 二选一 | Widget 应用 ID |
|
|
47
|
+
| container | `HTMLElement \| string` | 是 | 挂载容器,DOM 元素或选择器 |
|
|
48
|
+
| props | `WidgetProps` | 否 | 传递给 Widget 的属性 |
|
|
49
|
+
| timeout | `number` | 否 | 加载超时时间(毫秒),默认 30000 |
|
|
50
|
+
| onLoad | `() => void` | 否 | 加载完成回调 |
|
|
51
|
+
| onError | `(error: Error) => void` | 否 | 加载失败回调 |
|
|
52
|
+
|
|
53
|
+
#### preloadWidget - 预加载 Widget 资源
|
|
54
|
+
|
|
55
|
+
提前加载 Widget 资源(不挂载),用于优化用户体验。
|
|
56
|
+
|
|
57
|
+
```js
|
|
58
|
+
import { widget } from 'ifs-code-tools';
|
|
59
|
+
|
|
60
|
+
// 通过 url 预加载
|
|
61
|
+
widget.preloadWidget({ url: 'https://cdn.example.com/widgets/my-widget' });
|
|
62
|
+
|
|
63
|
+
// 通过 appId 预加载
|
|
64
|
+
widget.preloadWidget({ appId: 'my-app-id' });
|
|
65
|
+
|
|
66
|
+
// 用户交互时快速挂载(会从缓存中读取,加载更快)
|
|
67
|
+
const instance = await widget.loadWidget({
|
|
68
|
+
url: 'https://cdn.example.com/widgets/my-widget',
|
|
69
|
+
container: '#container',
|
|
70
|
+
});
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
#### WidgetRender - React 组件
|
|
74
|
+
|
|
75
|
+
React 组件形式的 Widget 加载器。
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import { widget } from 'ifs-code-tools';
|
|
79
|
+
|
|
80
|
+
function App() {
|
|
81
|
+
return (
|
|
82
|
+
<widget.WidgetRender
|
|
83
|
+
url="https://cdn.example.com/widgets/my-widget"
|
|
84
|
+
widgetProps={{ theme: 'dark' }}
|
|
85
|
+
loading={<div>Loading...</div>}
|
|
86
|
+
fallback={(error) => <div>Error: {error.message}</div>}
|
|
87
|
+
onLoad={() => console.log('loaded')}
|
|
88
|
+
onError={(err) => console.error(err)}
|
|
89
|
+
/>
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Props (WidgetRenderProps):**
|
|
95
|
+
|
|
96
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
97
|
+
| --- | --- | --- | --- |
|
|
98
|
+
| url | `string` | 与 appId 二选一 | Widget 根目录地址 |
|
|
99
|
+
| appId | `string` | 与 url 二选一 | Widget 应用 ID |
|
|
100
|
+
| widgetProps | `WidgetProps` | 否 | 传递给 Widget 的属性 |
|
|
101
|
+
| timeout | `number` | 否 | 加载超时时间(毫秒),默认 30000 |
|
|
102
|
+
| className | `string` | 否 | 容器类名 |
|
|
103
|
+
| style | `React.CSSProperties` | 否 | 容器样式 |
|
|
104
|
+
| loading | `React.ReactNode` | 否 | 加载中渲染内容 |
|
|
105
|
+
| fallback | `ReactNode \| ((error: Error) => ReactNode)` | 否 | 加载失败渲染内容 |
|
|
106
|
+
| onLoad | `() => void` | 否 | 加载完成回调 |
|
|
107
|
+
| onError | `(error: Error) => void` | 否 | 加载失败回调 |
|
|
108
|
+
|
|
109
|
+
## TypeScript 支持
|
|
110
|
+
|
|
111
|
+
本库提供完整的 TypeScript 类型定义,支持类型检查和 IDE 智能提示。
|
|
112
|
+
|
|
113
|
+
## License
|
|
114
|
+
|
|
115
|
+
MIT
|