@hzab/data-model 2.0.3-alpha.1 → 2.1.0-alpha.0
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/CHANGELOG.md +9 -150
- package/LICENSE +21 -0
- package/README.md +50 -270
- package/dist/index.cjs +6010 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1305 -0
- package/dist/index.d.ts +1305 -0
- package/dist/index.js +5956 -0
- package/dist/index.js.map +1 -0
- package/package.json +63 -49
- package/src/hooks.ts +7 -3
- package/src/index.ts +14 -11
- package/src/ArrayUtils.ts +0 -712
- package/src/RequestCache.ts +0 -202
- package/src/array-data-model.ts +0 -479
- package/src/axios.ts +0 -245
- package/src/data-model.ts +0 -850
- package/src/public-utils.ts +0 -26
- package/src/type.ts +0 -109
- package/src/utils.ts +0 -98
package/CHANGELOG.md
CHANGED
|
@@ -1,152 +1,11 @@
|
|
|
1
|
-
# @hzab/data-model
|
|
1
|
+
# @hzab/data-model
|
|
2
|
+
|
|
3
|
+
## 2.1.0-alpha.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 接入重构版 data-model
|
|
2
8
|
|
|
3
|
-
|
|
4
|
-
feat: RequestCache 接口缓存工具类
|
|
9
|
+
## 0.0.1
|
|
5
10
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
fix: getList \_data.content total == 0 情况处理
|
|
9
|
-
|
|
10
|
-
# @hzab/data-model@2.0.1
|
|
11
|
-
|
|
12
|
-
feat: ReqMap 支持异步
|
|
13
|
-
|
|
14
|
-
# @hzab/data-model@2.0.0
|
|
15
|
-
|
|
16
|
-
break: axios 默认导出实例化后的 axios 实例,axios 源对象通过 axiosDef 导出
|
|
17
|
-
refactor: js 文件改为 js 文件
|
|
18
|
-
|
|
19
|
-
# @hzab/data-model@1.8.8
|
|
20
|
-
|
|
21
|
-
feat: array-data-model 支持 query 过滤
|
|
22
|
-
|
|
23
|
-
# @hzab/data-model@1.8.6
|
|
24
|
-
|
|
25
|
-
fix: getToken opt.hasCookie 是否读取 cookie 的 token。默认不读取 cookie 的 token
|
|
26
|
-
fix: setToken 默认不设置到 cookie 上
|
|
27
|
-
|
|
28
|
-
# @hzab/data-model@1.8.4
|
|
29
|
-
|
|
30
|
-
fix: response undefined 兼容处理
|
|
31
|
-
|
|
32
|
-
# @hzab/data-model@1.8.3
|
|
33
|
-
|
|
34
|
-
fix: 无 response 默认返回网络异常文案
|
|
35
|
-
|
|
36
|
-
# @hzab/data-model@1.8.2
|
|
37
|
-
|
|
38
|
-
fix: errorHandler err 为 undefined 的情况兼容
|
|
39
|
-
|
|
40
|
-
# @hzab/data-model@1.8.1
|
|
41
|
-
|
|
42
|
-
fix: handleMsg 新增 response.message 获取
|
|
43
|
-
|
|
44
|
-
# @hzab/data-model@1.8.0
|
|
45
|
-
|
|
46
|
-
fix: public utils getPublicUrl 多层目录问题修复 isFullPath
|
|
47
|
-
|
|
48
|
-
# @hzab/data-model@1.7.6
|
|
49
|
-
|
|
50
|
-
feat: getPublicUrl 获取 public 文件路径(自动拼接 hash 数据)
|
|
51
|
-
|
|
52
|
-
# @hzab/data-model@1.7.5
|
|
53
|
-
|
|
54
|
-
fix: array-data-model 数据报错异常处理
|
|
55
|
-
|
|
56
|
-
# @hzab/data-model@1.7.4
|
|
57
|
-
|
|
58
|
-
fix: axios 拦截优化,解决请求取消异常问题
|
|
59
|
-
|
|
60
|
-
# @hzab/data-model@1.7.3
|
|
61
|
-
|
|
62
|
-
fix: axios 统一
|
|
63
|
-
|
|
64
|
-
# @hzab/data-model@1.7.2
|
|
65
|
-
|
|
66
|
-
feat: axios.js getCancelTokenSource 获取 axios.CancelToken.source, 用于取消请求
|
|
67
|
-
|
|
68
|
-
# @hzab/data-model@1.7.1
|
|
69
|
-
|
|
70
|
-
feat: sortKey/orderByColumn 支持对象格式,支持定义数据类型、自定义数据处理函数;自定义数据对比函数
|
|
71
|
-
|
|
72
|
-
# @hzab/data-model@1.7.0
|
|
73
|
-
|
|
74
|
-
feat: 本地数据支持排序查询列表数据
|
|
75
|
-
|
|
76
|
-
# @hzab/data-model@1.6.1
|
|
77
|
-
|
|
78
|
-
fix: array-data-modal getMap getListMap 修复;getListMap、getListResMap 逻辑优化
|
|
79
|
-
|
|
80
|
-
# @hzab/data-model@1.6.0
|
|
81
|
-
|
|
82
|
-
fix: 注释;通用函数抽离
|
|
83
|
-
feat: ArrayDataModel 本地数据 DataModel
|
|
84
|
-
|
|
85
|
-
# @hzab/data-model@1.5.0
|
|
86
|
-
|
|
87
|
-
- feat: 增加 patch 请求方式函数
|
|
88
|
-
|
|
89
|
-
# @hzab/data-model@1.4.1
|
|
90
|
-
|
|
91
|
-
- fix: handleMsg useStatusText 问题修复
|
|
92
|
-
|
|
93
|
-
# @hzab/data-model@1.4.0
|
|
94
|
-
|
|
95
|
-
- 兼容分页列表是 content 及相关数据同层的问题 data: { content: [], pageNumber: 1, pageSize: 10, total: 0 }
|
|
96
|
-
- handleResponse 统一 response 回调,用于处理定制 response 格式
|
|
97
|
-
|
|
98
|
-
# @hzab/data-model@1.3.1
|
|
99
|
-
|
|
100
|
-
- fix: useStatusText: true 问题修复
|
|
101
|
-
|
|
102
|
-
# @hzab/data-model@1.3.0
|
|
103
|
-
|
|
104
|
-
- feat: 网络情况判断
|
|
105
|
-
- feat: 新增参数 isResponseData 是否返回完整的接口数据(response.data); isResponse 是否直接返回 response
|
|
106
|
-
|
|
107
|
-
# @hzab/data-model@1.2.1
|
|
108
|
-
|
|
109
|
-
- fix: setAxTimeout default timeout 0
|
|
110
|
-
|
|
111
|
-
# @hzab/data-model@1.2.0
|
|
112
|
-
|
|
113
|
-
- feat: 增删改查 axiosConf 允许独立配置 xxxAxiosConf。如: createAxiosConf
|
|
114
|
-
|
|
115
|
-
# @hzab/data-model@1.1.1
|
|
116
|
-
|
|
117
|
-
- fix: formData header 覆盖问题修复
|
|
118
|
-
|
|
119
|
-
# @hzab/data-model@1.1.0
|
|
120
|
-
|
|
121
|
-
- formData 问题修复
|
|
122
|
-
|
|
123
|
-
# @hzab/data-model@1.0.2
|
|
124
|
-
|
|
125
|
-
- fix: getApiUrl 增加调用来源,错误提示增加入参展示
|
|
126
|
-
|
|
127
|
-
# @hzab/data-model@1.0.1
|
|
128
|
-
|
|
129
|
-
- fix: 修复 delete 入参问题
|
|
130
|
-
- fix: getApiUrl :xx 参数替换正则处理
|
|
131
|
-
|
|
132
|
-
# @hzab/data-model@0.2.3
|
|
133
|
-
|
|
134
|
-
- fix: axios delete 入参写法问题修复
|
|
135
|
-
|
|
136
|
-
# @hzab/data-model@0.2.2
|
|
137
|
-
|
|
138
|
-
- feat: useDataModel,解决 hooks 写法 model 重复实例化导致 query 丢失的问题
|
|
139
|
-
|
|
140
|
-
# @hzab/data-model@0.1.2
|
|
141
|
-
|
|
142
|
-
- 错误信息逻辑修复
|
|
143
|
-
- status 错误信息
|
|
144
|
-
- 默认错误信息
|
|
145
|
-
|
|
146
|
-
# @hzab/data-model@0.1.0
|
|
147
|
-
|
|
148
|
-
- token 设置在 cookie 中
|
|
149
|
-
|
|
150
|
-
# @hzab/data-model@0.0.1
|
|
151
|
-
|
|
152
|
-
组件初始化
|
|
11
|
+
- 初始化包骨架(2.1 唯一发布物:再导出 core + `useDataModel`)。
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 @hzab/react-maintainers
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,270 +1,50 @@
|
|
|
1
|
-
# @hzab/data-model
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
deleteApi,
|
|
52
|
-
// 批量删除接口 delete url
|
|
53
|
-
multipleDeleteApi,
|
|
54
|
-
// 统一 response 回调,用于处理定制 response 格式
|
|
55
|
-
handleResponse,
|
|
56
|
-
// axios 实例对象
|
|
57
|
-
axios,
|
|
58
|
-
// axios 相关配置
|
|
59
|
-
axiosConf,
|
|
60
|
-
// getList 接口 axios 相关配置
|
|
61
|
-
getListAxiosConf,
|
|
62
|
-
// get 接口 axios 相关配置
|
|
63
|
-
getAxiosConf,
|
|
64
|
-
// create 接口 axios 相关配置
|
|
65
|
-
createAxiosConf,
|
|
66
|
-
// update 接口 axios 相关配置
|
|
67
|
-
updateAxiosConf,
|
|
68
|
-
// patch 接口 axios 相关配置
|
|
69
|
-
patchAxiosConf,
|
|
70
|
-
// delete 接口 axios 相关配置
|
|
71
|
-
deleteAxiosConf,
|
|
72
|
-
// multipleDelete 接口 axios 相关配置
|
|
73
|
-
multipleDeleteAxiosConf,
|
|
74
|
-
// 列表接口 get 入参枚举函数
|
|
75
|
-
getListReqMap,
|
|
76
|
-
// 列表接口 get 出参枚举函数
|
|
77
|
-
getListResMap,
|
|
78
|
-
// 详情接口 get 入参枚举函数
|
|
79
|
-
getReqMap,
|
|
80
|
-
// 详情接口 get 出参枚举函数
|
|
81
|
-
getResMap,
|
|
82
|
-
// 新增接口 post 入参枚举函数
|
|
83
|
-
createReqMap,
|
|
84
|
-
// 新增接口 post 出参枚举函数
|
|
85
|
-
createResMap,
|
|
86
|
-
// 编辑接口 put 入参枚举函数
|
|
87
|
-
updateReqMap,
|
|
88
|
-
// 编辑接口 put 出参枚举函数
|
|
89
|
-
updateResMap,
|
|
90
|
-
// patch 编辑接口 put 入参枚举函数
|
|
91
|
-
patchReqMap,
|
|
92
|
-
// patch 编辑接口 put 出参枚举函数
|
|
93
|
-
patchResMap,
|
|
94
|
-
// 删除接口 delete 入参枚举函数
|
|
95
|
-
deleteReqMap,
|
|
96
|
-
// 删除接口 delete 出参枚举函数
|
|
97
|
-
deleteResMap,
|
|
98
|
-
// 批量删除接口 delete 入参枚举函数
|
|
99
|
-
multipleDeleteReqMap,
|
|
100
|
-
// 批量删除接口 delete 出参枚举函数
|
|
101
|
-
multipleDeleteResMap,
|
|
102
|
-
// 是否返回完整的接口数据(response.data)
|
|
103
|
-
isResponseData,
|
|
104
|
-
// 是否直接返回 response
|
|
105
|
-
isResponse,
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
// useDataModel,解决 hooks 写法 model 重复实例化导致 query 丢失的问题
|
|
109
|
-
function Demo({ orgId }) {
|
|
110
|
-
// 第一个入参同 new DataModel,第二个参数为需要监听的动态参数数组
|
|
111
|
-
const model = useDataModel(
|
|
112
|
-
// 初始值
|
|
113
|
-
{
|
|
114
|
-
getListApi: "/getList",
|
|
115
|
-
query: { orgId },
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
// 动态的 params 数据
|
|
119
|
-
effectParams: { orgId },
|
|
120
|
-
// 动态 query 数据
|
|
121
|
-
effectQuery: { orgId },
|
|
122
|
-
// 动态数据监听的值
|
|
123
|
-
effectTargets: [orgId],
|
|
124
|
-
},
|
|
125
|
-
);
|
|
126
|
-
return <ListRender model={model} />;
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
#### 重复请求拦截
|
|
132
|
-
```tsx
|
|
133
|
-
import RequestCache from "@hzab/data-model/RequestCache";
|
|
134
|
-
import { AxiosRequestConfigWithCache, setAxRequest } from "@hzab/data-model";
|
|
135
|
-
|
|
136
|
-
const requestCache = new RequestCache({ options: { cacheTTL: 2000 } });
|
|
137
|
-
|
|
138
|
-
setAxRequest((config: AxiosRequestConfigWithCache) => {
|
|
139
|
-
// 拦截 get 请求
|
|
140
|
-
if (config.method.toLowerCase() === "get") {
|
|
141
|
-
return requestCache.handleAxRequest(config);
|
|
142
|
-
}
|
|
143
|
-
return config;
|
|
144
|
-
});
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## DataModel
|
|
148
|
-
|
|
149
|
-
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
150
|
-
| ----------------------- | -------- | ---- | ------ | ---------------------------------------------- |
|
|
151
|
-
| query | Object | 否 | - | query 参数对象 |
|
|
152
|
-
| createApi | string | 否 | - | post 接口地址 |
|
|
153
|
-
| getApi | string | 否 | - | 详情 get 接口地址 |
|
|
154
|
-
| getListApi | string | 否 | - | 列表 get 接口地址 |
|
|
155
|
-
| updateApi | string | 否 | - | put 接口地址 |
|
|
156
|
-
| patchApi | string | 否 | - | patch 接口地址 |
|
|
157
|
-
| deleteApi | string | 否 | - | delete 接口地址 |
|
|
158
|
-
| multipleDeleteApi | string | 否 | - | 批量删除 delete 接口地址 |
|
|
159
|
-
| createMap | Function | 否 | - | createApi 接口提交前的处理函数 |
|
|
160
|
-
| getMap | Function | 否 | - | getApi 接口返回结果的处理函数 |
|
|
161
|
-
| getListMap | Function | 否 | - | getListApi 接口返回结果的处理函数 |
|
|
162
|
-
| getListFunc | Function | 否 | - | 自定义的列表请求函数,优先级高于 getListApi |
|
|
163
|
-
| updateMap | Function | 否 | - | updateApi 接口提交前的处理函数 |
|
|
164
|
-
| patchMap | Function | 否 | - | patchApi 接口提交前的处理函数 |
|
|
165
|
-
| axios | Object | 否 | - | axios 实例对象 |
|
|
166
|
-
| axiosConf | Object | 否 | - | axios 相关配置 |
|
|
167
|
-
| getListAxiosConf | Object | 否 | - | getList 接口 axios 相关配置 |
|
|
168
|
-
| getAxiosConf | Object | 否 | - | get 接口 axios 相关配置 |
|
|
169
|
-
| createAxiosConf | Object | 否 | - | create 接口 axios 相关配置 |
|
|
170
|
-
| updateAxiosConf | Object | 否 | - | update 接口 axios 相关配置 |
|
|
171
|
-
| patchAxiosConf | Object | 否 | - | patch 接口 axios 相关配置 |
|
|
172
|
-
| deleteAxiosConf | Object | 否 | - | delete 接口 axios 相关配置 |
|
|
173
|
-
| multipleDeleteAxiosConf | Object | 否 | - | multipleDelete 接口 axios 相关配置 |
|
|
174
|
-
| getListReqMap | Function | 否 | - | 列表接口 get 入参枚举函数 |
|
|
175
|
-
| getListResMap | Function | 否 | - | 列表接口 get 出参枚举函数 |
|
|
176
|
-
| getReqMap | Function | 否 | - | 详情接口 get 入参枚举函数 |
|
|
177
|
-
| getResMap | Function | 否 | - | 详情接口 get 出参枚举函数 |
|
|
178
|
-
| createReqMap | Function | 否 | - | 新增接口 get 入参枚举函数 |
|
|
179
|
-
| createResMap | Function | 否 | - | 新增接口 get 出参枚举函数 |
|
|
180
|
-
| updateReqMap | Function | 否 | - | 编辑接口 get 入参枚举函数 |
|
|
181
|
-
| updateResMap | Function | 否 | - | 编辑接口 get 出参枚举函数 |
|
|
182
|
-
| patchReqMap | Function | 否 | - | patch 接口 get 入参枚举函数 |
|
|
183
|
-
| patchResMap | Function | 否 | - | patch 接口 get 出参枚举函数 |
|
|
184
|
-
| deleteReqMap | Function | 否 | - | 删除接口 get 入参枚举函数 |
|
|
185
|
-
| deleteResMap | Function | 否 | - | 删除接口 get 出参枚举函数 |
|
|
186
|
-
| multipleDeleteReqMap | Function | 否 | - | 批量删除接口 get 入参枚举函数 |
|
|
187
|
-
| multipleDeleteResMap | Function | 否 | - | 批量删除接口 get 出参枚举函数 |
|
|
188
|
-
| isResponseData | boolean | 否 | - | 是否返回完整的接口数据(response.data) |
|
|
189
|
-
| isResponse | boolean | 否 | - | 是否直接返回 response |
|
|
190
|
-
| handleResponse | Function | 否 | - | 统一 response 回调,用于处理定制 response 格式 |
|
|
191
|
-
|
|
192
|
-
## useDataModel
|
|
193
|
-
|
|
194
|
-
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
195
|
-
| ----------------- | ------ | ---- | ------ | -------------------------------- |
|
|
196
|
-
| initParams | Object | 是 | - | 初始参数,通同 DataModel |
|
|
197
|
-
| opt | Object | 否 | - | 配置参数 |
|
|
198
|
-
| opt.effectTargets | Object | 否 | - | 动态数据监听的目标 |
|
|
199
|
-
| opt.effectParams | Object | 否 | - | 动态的 params 数据,包含了 query |
|
|
200
|
-
| opt.effectQuery | Object | 否 | - | 动态的 query 数据 |
|
|
201
|
-
|
|
202
|
-
## array-data-model
|
|
203
|
-
|
|
204
|
-
- 参数通 DataModel
|
|
205
|
-
|
|
206
|
-
### query 配置
|
|
207
|
-
|
|
208
|
-
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
209
|
-
| --------------------- | ----------------------------------------- | ---- | ------ | --------------------------------------------------------- |
|
|
210
|
-
| sortKey/orderByColumn | string/Object/Array[string]/Array[Object] | 否 | - | 排序字段,支持多维度排序,按照传入的顺序排优先级 |
|
|
211
|
-
| sortType/isAsc | string/Object | 否 | - | 排序规则,支持对象配置各字段排序规则 正序: asc 倒序: desc |
|
|
212
|
-
|
|
213
|
-
### sortKey/orderByColumn Object 配置
|
|
214
|
-
|
|
215
|
-
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|
|
216
|
-
| ------------- | -------- | ---- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
|
|
217
|
-
| path | string | 否 | - | path 取值路径字符串 |
|
|
218
|
-
| type | string | 否 | - | 值类型 用于进行内部相关转换 date |
|
|
219
|
-
| customFormat | Function | 否 | - | 自定义数据处理函数 |
|
|
220
|
-
| customCompare | Function | 否 | - | 自定义数据对比函数 (a, b)=>number,如果 a 小于 b,返回值为负数,如果 a 大于 b,返回值为正数,如果两个元素相等,返回值为 0。NaN 被视为 0。 |
|
|
221
|
-
|
|
222
|
-
- type 目前支持的类型: date
|
|
223
|
-
|
|
224
|
-
# 组件开发流程
|
|
225
|
-
|
|
226
|
-
- 在 config/webpack.config.js 中按需修改 library 配置的文件名
|
|
227
|
-
- 在 config/webpack.config.js 中按需修改 alias 配置的包名,便于本地调试
|
|
228
|
-
- 在 tsconfig.json 中按需修改 paths 配置的包名,解决 ts 报错问题
|
|
229
|
-
- npm run dev
|
|
230
|
-
|
|
231
|
-
## 文件目录
|
|
232
|
-
|
|
233
|
-
- example 本地开发测试代码
|
|
234
|
-
- src 组件源码
|
|
235
|
-
|
|
236
|
-
## 命令
|
|
237
|
-
|
|
238
|
-
- 生成文档:npm run docs
|
|
239
|
-
- 本地运行:npm run dev
|
|
240
|
-
- 打包编译:npm run build
|
|
241
|
-
|
|
242
|
-
## 发布
|
|
243
|
-
|
|
244
|
-
- npm 源和云效源都需要发布
|
|
245
|
-
|
|
246
|
-
- 命令:npm publish --access public
|
|
247
|
-
- 发布目录:
|
|
248
|
-
- src
|
|
249
|
-
|
|
250
|
-
### nrm
|
|
251
|
-
|
|
252
|
-
- 安装
|
|
253
|
-
npm install -g nrm
|
|
254
|
-
- 增加源
|
|
255
|
-
nrm add aliyun https://packages.aliyun.com/62046985b3ead41b374a17f7/npm/npm-registry/
|
|
256
|
-
- 切换源
|
|
257
|
-
nrm use aliyun
|
|
258
|
-
nrm use npm
|
|
259
|
-
- 登录(账号密码在 https://packages.aliyun.com/npm/npm-registry/guide 查看)
|
|
260
|
-
npm login --registry=https://packages.aliyun.com/62046985b3ead41b374a17f7/npm/npm-registry/
|
|
261
|
-
|
|
262
|
-
## 配置
|
|
263
|
-
|
|
264
|
-
### 配置文件
|
|
265
|
-
|
|
266
|
-
- 本地配置文件:config/config.js
|
|
267
|
-
|
|
268
|
-
### webpack 配置文件
|
|
269
|
-
|
|
270
|
-
- config/webpack.config.js
|
|
1
|
+
# @hzab/data-model
|
|
2
|
+
|
|
3
|
+
数据模型 2.1:再导出 `@hzab/data-model-core`(打进 dist,不单独发布),并提供 `useDataModel`。后继 API 与 2.x 旧写法双轨。
|
|
4
|
+
|
|
5
|
+
老页面继续 `import { useDataModel, DataModel, axios } from "@hzab/data-model"`。不要安装 `@hzab/data-model-core`。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add @hzab/data-model
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
peer:`react` `^17 || ^18 || ^19`(使用 `useDataModel` 时由消费方提供)。
|
|
14
|
+
|
|
15
|
+
## 用法
|
|
16
|
+
|
|
17
|
+
### 新页面(后继 API)
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import DataModel, { axios, createAxiosClient } from "@hzab/data-model";
|
|
21
|
+
|
|
22
|
+
const model = DataModel.getInstance("items", {
|
|
23
|
+
getListApi: "/api/items",
|
|
24
|
+
responseAdapter: {},
|
|
25
|
+
});
|
|
26
|
+
model.configure({ query: { tenantId: "1" } });
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 旧写法(useDataModel / 旧 list-render)
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { useDataModel } from "@hzab/data-model";
|
|
33
|
+
|
|
34
|
+
const model = useDataModel({ getListApi: "/api/items", query: { tenantId: "1" } });
|
|
35
|
+
model
|
|
36
|
+
.getList({})
|
|
37
|
+
.catch((err) => {
|
|
38
|
+
if (err?.code === "ERR_CANCELED") return;
|
|
39
|
+
throw err;
|
|
40
|
+
});
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
取消请求由调用方 catch `ERR_CANCELED`(模型不再静默不 settle)。
|
|
44
|
+
|
|
45
|
+
计划:[docs/data-model-from-ccc-plan.md](../../../docs/data-model-from-ccc-plan.md)。
|
|
46
|
+
|
|
47
|
+
## 维护
|
|
48
|
+
|
|
49
|
+
- Owner:@hzab/react-maintainers
|
|
50
|
+
- 层级:react(唯一发布物)
|