zentao-api 0.3.0 → 0.3.2
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 +38 -2
- package/dist/browser/zentao-api.global.js +2 -2
- package/dist/client/index.d.ts +14 -5
- package/dist/client/index.js +101 -36
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/misc/environment.js +25 -3
- package/dist/misc/errors.d.ts +1 -1
- package/dist/misc/errors.js +1 -1
- package/dist/modules/define.d.ts +63 -0
- package/dist/modules/define.js +119 -0
- package/dist/modules/generated.d.ts +4329 -2
- package/dist/modules/override.d.ts +60 -0
- package/dist/modules/override.js +113 -0
- package/dist/modules/query.d.ts +44 -0
- package/dist/modules/query.js +68 -0
- package/dist/modules/registry-store.d.ts +31 -0
- package/dist/modules/registry-store.js +133 -0
- package/dist/modules/registry.d.ts +4333 -83
- package/dist/modules/registry.js +16 -218
- package/dist/request/index.d.ts +104 -4
- package/dist/request/index.js +41 -21
- package/dist/types/client.d.ts +38 -0
- package/dist/types/client.js +1 -0
- package/dist/types/data.d.ts +42 -0
- package/dist/types/data.js +1 -0
- package/dist/types/index.d.ts +17 -341
- package/dist/types/index.js +17 -1
- package/dist/types/module.d.ts +124 -0
- package/dist/types/module.js +1 -0
- package/dist/types/options.d.ts +35 -0
- package/dist/types/options.js +1 -0
- package/dist/types/profile.d.ts +54 -0
- package/dist/types/profile.js +1 -0
- package/dist/types/response.d.ts +70 -0
- package/dist/types/response.js +1 -0
- package/dist/version.js +2 -2
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -57,6 +57,14 @@ setGlobalOptions({ recPerPage: '50' });
|
|
|
57
57
|
const result = await request('product/list', {});
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
+
请求名支持三种写法:
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
await request('product'); // 默认调用 product/list
|
|
64
|
+
await request('product/list'); // 显式调用模块动作
|
|
65
|
+
await request('product/1'); // 详情快捷写法,等价于 product/get + id=1
|
|
66
|
+
```
|
|
67
|
+
|
|
60
68
|
单次调用的选项会覆盖全局选项:
|
|
61
69
|
|
|
62
70
|
```ts
|
|
@@ -93,11 +101,13 @@ const client = await ZentaoClient.fromProfile('admin@https://zentao.example.com'
|
|
|
93
101
|
|
|
94
102
|
| 函数 | 说明 |
|
|
95
103
|
|------|------|
|
|
96
|
-
| `request(name, params?, options?)` | 按 `"module/action"`
|
|
104
|
+
| `request(name, params?, options?)` | 按 `"module"`、`"module/action"` 或 `"module/<objectID>"` 调用已注册模块 |
|
|
97
105
|
| `defineModules(modules, options?)` | 注册或扩展模块定义 |
|
|
98
106
|
| `defineModuleActions(module, actions)` | 为已有模块追加或替换动作 |
|
|
107
|
+
| `extendModuleAction(module, action, patch)` | 深度合并补丁,或用回调改写已有动作 |
|
|
99
108
|
| `getModule(name)` | 获取模块定义 |
|
|
100
109
|
| `getModuleAction(module, action)` | 获取指定动作定义 |
|
|
110
|
+
| `getModuleNames()` | 获取所有已注册模块名 |
|
|
101
111
|
| `setGlobalOptions(options)` | 设置全局默认选项 |
|
|
102
112
|
| `getGlobalOptions()` | 获取当前全局选项 |
|
|
103
113
|
|
|
@@ -118,7 +128,7 @@ try {
|
|
|
118
128
|
}
|
|
119
129
|
```
|
|
120
130
|
|
|
121
|
-
> **注意**:服务端返回 `{ status: "fail" }` 时 SDK
|
|
131
|
+
> **注意**:服务端返回 `{ status: "fail" }` 时 SDK 默认不会抛出异常,按原始响应内容返回。需要把业务失败转为异常时,可在单次请求或全局选项中启用 `throwOnFail`。HTTP/网络/超时等传输层错误始终会抛出 `ZentaoError`。
|
|
122
132
|
|
|
123
133
|
## 扩展模块
|
|
124
134
|
|
|
@@ -159,6 +169,32 @@ defineModuleActions('bug', {
|
|
|
159
169
|
});
|
|
160
170
|
```
|
|
161
171
|
|
|
172
|
+
### 微调已有动作
|
|
173
|
+
|
|
174
|
+
只想改动作的个别字段(而不是整体替换)时,用 `extendModuleAction`。传入补丁对象会与原动作**深度合并**:普通对象递归合并,数组及其他值整体替换,`undefined` 的键会被忽略。
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
import { extendModuleAction } from 'zentao-api';
|
|
178
|
+
|
|
179
|
+
// 改写 task/list 的 URL
|
|
180
|
+
extendModuleAction('task', 'list', {
|
|
181
|
+
path: '/executions/{executionID}/tasks',
|
|
182
|
+
pathParams: { executionID: '执行ID' },
|
|
183
|
+
});
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
需要基于现有定义做条件改写时,可传入回调。回调收到当前动作的深克隆,返回值作为**完整**动作定义直接取代原动作(不再合并):
|
|
187
|
+
|
|
188
|
+
```ts
|
|
189
|
+
extendModuleAction('execution', 'create', (action) => {
|
|
190
|
+
const required = action.requestBody!.schema?.required;
|
|
191
|
+
if (Array.isArray(required) && !required.includes('products')) {
|
|
192
|
+
required.push('products');
|
|
193
|
+
}
|
|
194
|
+
return action;
|
|
195
|
+
});
|
|
196
|
+
```
|
|
197
|
+
|
|
162
198
|
### 合并与替换
|
|
163
199
|
|
|
164
200
|
同名模块默认**合并**定义:同名动作会替换,未知动作会追加。如需**整体替换**模块,传入 `{ replace: true }`:
|