@choiceform/os-client-core 3.6.50 → 3.6.52
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 +183 -183
- package/changelog.md +807 -0
- package/dist/core.js +1 -1
- package/dist/web-core.js +1 -1
- package/enum2union.js +28 -28
- package/index.d.ts +5985 -5985
- package/package.json +1 -1
package/README.md
CHANGED
@@ -1,183 +1,183 @@
|
|
1
|
-
# os-client-core
|
2
|
-
|
3
|
-
## 重点关注
|
4
|
-
|
5
|
-
为了适应 ssr 数据前后端共享,以后全局数据不要放到某个模块内部,而是要放到 core 对象或者 startState 或者 surveyState 上。
|
6
|
-
|
7
|
-
这是巧思调研平台的调研客户端的核心程序包,
|
8
|
-
|
9
|
-
具体的使用文档请查看[核心包文档](https://choice-form.github.io/os-client-core/content/index.html)
|
10
|
-
|
11
|
-
## 发布版本
|
12
|
-
|
13
|
-
1. changelog 中填好更改说明
|
14
|
-
2. yarn release [version] [commit]
|
15
|
-
> release 的详情可以看[changelog.md](./CHANGELOG.md)开头的说明,或[toole/release.js](./tools/release.js)的实现
|
16
|
-
|
17
|
-
## 类型说明
|
18
|
-
|
19
|
-
1. 本库提供的所有供外部参考的类型名都已 `CC` 开头 (Client Core),仅供本包内部使用的用常规的 `I` 开头
|
20
|
-
2. 因问卷系统数据结构非常复杂,复杂类型经常会多重继承获取动态能力的,名称差不多很容易混淆类型职责,为了快速分辨各个类型的意图,我们用了一套规则类合理的维护这种关系,并且按分类不同可能会在 `CC` 后加不同的字母以示区别,方便快速识别依赖关系
|
21
|
-
- `常规类型`不附加任何字母:`CC`
|
22
|
-
- `标准基类类型`:`CCB`
|
23
|
-
- `混入基类类型`:`CCM`
|
24
|
-
- `混入内容类型`:`CCX`
|
25
|
-
|
26
|
-
对于第 2 点的规则,这里举例说明:
|
27
|
-
|
28
|
-
比如我们以节点的类型关系举例:
|
29
|
-
|
30
|
-
选择题目需要基本节点功能,问题功能,选项功能,多选功能。
|
31
|
-
|
32
|
-
填空题目需要基本节点功能,问题功能,选项功能,选项输入数控制功能。
|
33
|
-
|
34
|
-
循环节点需要基本节点功能,选项功能。
|
35
|
-
|
36
|
-
其中基本节点功能是所有节点都需要的,当成`标准基类类型`,子类节点总是继承这个类型,这里节点类型是服务目标。
|
37
|
-
|
38
|
-
其他功能是不同的节点按需多继承的`混入基类类型`,这些`混入基类类型`本身总是符合(继承)`标准基类类型`的规范(因为他们只为服务目标存在),同时通过混入`混入内容类型`获得额外的能力。
|
39
|
-
|
40
|
-
`混入内容类型`不一定总会单独被定义,只有它需要被在脱离它的服务目标(这里是节点)的场合中被使用时,财货单独被定义,否则,它直接被合并在`混入基类类型`中
|
41
|
-
|
42
|
-
所以类型会定义成如下这种方式:
|
43
|
-
|
44
|
-
```typescript
|
45
|
-
/**
|
46
|
-
* 标准基类类型,没有真实对应它的节点类型
|
47
|
-
*/
|
48
|
-
interface CCBNode {
|
49
|
-
/**
|
50
|
-
* 节点id
|
51
|
-
*/
|
52
|
-
nodeUuid: string;
|
53
|
-
/**
|
54
|
-
* 节点名称
|
55
|
-
*/
|
56
|
-
nodeName: string;
|
57
|
-
}
|
58
|
-
/**
|
59
|
-
* 拥有问题功能的节点,没有真实对应它的节点类型
|
60
|
-
* 假设它的混入内容没有需要被脱离与节点使用,所有直接混入到自身
|
61
|
-
*/
|
62
|
-
interface CCMQuestionNode extends CCBNode {
|
63
|
-
/**
|
64
|
-
* 问题文字
|
65
|
-
*/
|
66
|
-
questionText: string;
|
67
|
-
/**
|
68
|
-
* 问题描述
|
69
|
-
*/
|
70
|
-
describe: string;
|
71
|
-
}
|
72
|
-
|
73
|
-
/**
|
74
|
-
* 拥有选项功能的节点,没有真实对应它的节点类型
|
75
|
-
* 假设它的混入内容没有需要被脱离于节点使用,所有直接混入到自身
|
76
|
-
*/
|
77
|
-
interface CCMOptionNode extends CCBNode {
|
78
|
-
/**
|
79
|
-
* 自身选项
|
80
|
-
*/
|
81
|
-
options: any[];
|
82
|
-
/**
|
83
|
-
* 引用选项
|
84
|
-
*/
|
85
|
-
refOptions: any[];
|
86
|
-
/**
|
87
|
-
* 选项引用配置
|
88
|
-
*/
|
89
|
-
optionRefers: any[];
|
90
|
-
}
|
91
|
-
|
92
|
-
/**
|
93
|
-
* 为多选节点服务的混入功能,但是因为假设这个类型需要在节点类型之外还被使用,所以单独抽出了。
|
94
|
-
*/
|
95
|
-
interface CCXMultiSelect {
|
96
|
-
/**
|
97
|
-
* 是否开启多选功能
|
98
|
-
*/
|
99
|
-
multiSelect: boolean;
|
100
|
-
/**
|
101
|
-
* 最多可选项
|
102
|
-
*/
|
103
|
-
multiMax: number;
|
104
|
-
/**
|
105
|
-
* 最少需选项
|
106
|
-
*/
|
107
|
-
multiMin: number;
|
108
|
-
}
|
109
|
-
|
110
|
-
/**
|
111
|
-
* 拥有多选功能的节点,没有真实对应它的节点类型
|
112
|
-
* 假设它的混入内容是需要被脱离于节点使用,所有单独定义到了CCMultiSelect中
|
113
|
-
*/
|
114
|
-
interface CCMMultiSelectNode extends CCBNode, CCMOptionNode, CCXMultiSelect {}
|
115
|
-
|
116
|
-
/**
|
117
|
-
* 拥有控制选项输入数限制功能的节点,没有真实对应它的节点类型
|
118
|
-
* 假设它的混入内容是需要被脱离于节点使用,所有单独定义到了CCMultiSelect中
|
119
|
-
*/
|
120
|
-
interface CCMInputCountNode extends CCBNode, CCMOptionNode {
|
121
|
-
/**
|
122
|
-
* 是否开始输入想限制
|
123
|
-
*/
|
124
|
-
useFillCount: boolean;
|
125
|
-
/**
|
126
|
-
* 最少需要输入的项目数
|
127
|
-
*/
|
128
|
-
fillCount: number;
|
129
|
-
}
|
130
|
-
|
131
|
-
/**
|
132
|
-
* 选择题目节点,通过多继承获得了基础功能,问题功能, 选项功能,多选功能
|
133
|
-
* 有真实对应它的节点类型
|
134
|
-
*
|
135
|
-
*/
|
136
|
-
interface CCSelectNode extends CCBNode, CCMQuestionNode, CCMOptionNode, CCMMultiSelectNode{
|
137
|
-
// 除了从多方继承来的功能,可能还有自己身上的功能
|
138
|
-
}
|
139
|
-
|
140
|
-
|
141
|
-
/**
|
142
|
-
* 填空题目节点,通过多继承获得了基础功能,问题功能, 选项功能,输入项数控制功能
|
143
|
-
* 有真实对应它的节点类型
|
144
|
-
*
|
145
|
-
*/
|
146
|
-
interface CCFillNode extends CCBNode, CCMQuestionNode, CCMOptionNode, CCMInputCountNode{
|
147
|
-
// 除了从多方继承来的功能,可能还有自己身上的功能
|
148
|
-
}
|
149
|
-
|
150
|
-
|
151
|
-
/**
|
152
|
-
* 循环控制节点,通过多继承获得了基础功能,选项功能
|
153
|
-
* 有真实对应它的节点类型
|
154
|
-
*
|
155
|
-
*/
|
156
|
-
interface CCLoopNode extends CCBNode, CCMOptionNode{
|
157
|
-
// 除了从多方继承来的功能,可能还有自己身上的功能
|
158
|
-
}
|
159
|
-
|
160
|
-
## Git commit message 约定
|
161
|
-
|
162
|
-
格式如下,具体例子可以使用 `git log` 看看。
|
163
|
-
|
164
|
-
```
|
165
|
-
|
166
|
-
[类型]: [简短描述]
|
167
|
-
|
168
|
-
[详细描述,可选]
|
169
|
-
|
170
|
-
```
|
171
|
-
|
172
|
-
类型如下:
|
173
|
-
|
174
|
-
- feat: 新功能
|
175
|
-
- fix: 修补 bug
|
176
|
-
- docs: 文档
|
177
|
-
- style: 代码格式
|
178
|
-
- refactor: 重构,即不是新增功能,也不是修改 bug 的代码变动
|
179
|
-
- test: 测试
|
180
|
-
- chore: 构建过程或辅助工具的变动
|
181
|
-
|
182
|
-
注意:本仓库配置了一些提交前检查,如果遇到提交失败,请注意看其提示信息。
|
183
|
-
```
|
1
|
+
# os-client-core
|
2
|
+
|
3
|
+
## 重点关注
|
4
|
+
|
5
|
+
为了适应 ssr 数据前后端共享,以后全局数据不要放到某个模块内部,而是要放到 core 对象或者 startState 或者 surveyState 上。
|
6
|
+
|
7
|
+
这是巧思调研平台的调研客户端的核心程序包,
|
8
|
+
|
9
|
+
具体的使用文档请查看[核心包文档](https://choice-form.github.io/os-client-core/content/index.html)
|
10
|
+
|
11
|
+
## 发布版本
|
12
|
+
|
13
|
+
1. changelog 中填好更改说明
|
14
|
+
2. yarn release [version] [commit]
|
15
|
+
> release 的详情可以看[changelog.md](./CHANGELOG.md)开头的说明,或[toole/release.js](./tools/release.js)的实现
|
16
|
+
|
17
|
+
## 类型说明
|
18
|
+
|
19
|
+
1. 本库提供的所有供外部参考的类型名都已 `CC` 开头 (Client Core),仅供本包内部使用的用常规的 `I` 开头
|
20
|
+
2. 因问卷系统数据结构非常复杂,复杂类型经常会多重继承获取动态能力的,名称差不多很容易混淆类型职责,为了快速分辨各个类型的意图,我们用了一套规则类合理的维护这种关系,并且按分类不同可能会在 `CC` 后加不同的字母以示区别,方便快速识别依赖关系
|
21
|
+
- `常规类型`不附加任何字母:`CC`
|
22
|
+
- `标准基类类型`:`CCB`
|
23
|
+
- `混入基类类型`:`CCM`
|
24
|
+
- `混入内容类型`:`CCX`
|
25
|
+
|
26
|
+
对于第 2 点的规则,这里举例说明:
|
27
|
+
|
28
|
+
比如我们以节点的类型关系举例:
|
29
|
+
|
30
|
+
选择题目需要基本节点功能,问题功能,选项功能,多选功能。
|
31
|
+
|
32
|
+
填空题目需要基本节点功能,问题功能,选项功能,选项输入数控制功能。
|
33
|
+
|
34
|
+
循环节点需要基本节点功能,选项功能。
|
35
|
+
|
36
|
+
其中基本节点功能是所有节点都需要的,当成`标准基类类型`,子类节点总是继承这个类型,这里节点类型是服务目标。
|
37
|
+
|
38
|
+
其他功能是不同的节点按需多继承的`混入基类类型`,这些`混入基类类型`本身总是符合(继承)`标准基类类型`的规范(因为他们只为服务目标存在),同时通过混入`混入内容类型`获得额外的能力。
|
39
|
+
|
40
|
+
`混入内容类型`不一定总会单独被定义,只有它需要被在脱离它的服务目标(这里是节点)的场合中被使用时,财货单独被定义,否则,它直接被合并在`混入基类类型`中
|
41
|
+
|
42
|
+
所以类型会定义成如下这种方式:
|
43
|
+
|
44
|
+
```typescript
|
45
|
+
/**
|
46
|
+
* 标准基类类型,没有真实对应它的节点类型
|
47
|
+
*/
|
48
|
+
interface CCBNode {
|
49
|
+
/**
|
50
|
+
* 节点id
|
51
|
+
*/
|
52
|
+
nodeUuid: string;
|
53
|
+
/**
|
54
|
+
* 节点名称
|
55
|
+
*/
|
56
|
+
nodeName: string;
|
57
|
+
}
|
58
|
+
/**
|
59
|
+
* 拥有问题功能的节点,没有真实对应它的节点类型
|
60
|
+
* 假设它的混入内容没有需要被脱离与节点使用,所有直接混入到自身
|
61
|
+
*/
|
62
|
+
interface CCMQuestionNode extends CCBNode {
|
63
|
+
/**
|
64
|
+
* 问题文字
|
65
|
+
*/
|
66
|
+
questionText: string;
|
67
|
+
/**
|
68
|
+
* 问题描述
|
69
|
+
*/
|
70
|
+
describe: string;
|
71
|
+
}
|
72
|
+
|
73
|
+
/**
|
74
|
+
* 拥有选项功能的节点,没有真实对应它的节点类型
|
75
|
+
* 假设它的混入内容没有需要被脱离于节点使用,所有直接混入到自身
|
76
|
+
*/
|
77
|
+
interface CCMOptionNode extends CCBNode {
|
78
|
+
/**
|
79
|
+
* 自身选项
|
80
|
+
*/
|
81
|
+
options: any[];
|
82
|
+
/**
|
83
|
+
* 引用选项
|
84
|
+
*/
|
85
|
+
refOptions: any[];
|
86
|
+
/**
|
87
|
+
* 选项引用配置
|
88
|
+
*/
|
89
|
+
optionRefers: any[];
|
90
|
+
}
|
91
|
+
|
92
|
+
/**
|
93
|
+
* 为多选节点服务的混入功能,但是因为假设这个类型需要在节点类型之外还被使用,所以单独抽出了。
|
94
|
+
*/
|
95
|
+
interface CCXMultiSelect {
|
96
|
+
/**
|
97
|
+
* 是否开启多选功能
|
98
|
+
*/
|
99
|
+
multiSelect: boolean;
|
100
|
+
/**
|
101
|
+
* 最多可选项
|
102
|
+
*/
|
103
|
+
multiMax: number;
|
104
|
+
/**
|
105
|
+
* 最少需选项
|
106
|
+
*/
|
107
|
+
multiMin: number;
|
108
|
+
}
|
109
|
+
|
110
|
+
/**
|
111
|
+
* 拥有多选功能的节点,没有真实对应它的节点类型
|
112
|
+
* 假设它的混入内容是需要被脱离于节点使用,所有单独定义到了CCMultiSelect中
|
113
|
+
*/
|
114
|
+
interface CCMMultiSelectNode extends CCBNode, CCMOptionNode, CCXMultiSelect {}
|
115
|
+
|
116
|
+
/**
|
117
|
+
* 拥有控制选项输入数限制功能的节点,没有真实对应它的节点类型
|
118
|
+
* 假设它的混入内容是需要被脱离于节点使用,所有单独定义到了CCMultiSelect中
|
119
|
+
*/
|
120
|
+
interface CCMInputCountNode extends CCBNode, CCMOptionNode {
|
121
|
+
/**
|
122
|
+
* 是否开始输入想限制
|
123
|
+
*/
|
124
|
+
useFillCount: boolean;
|
125
|
+
/**
|
126
|
+
* 最少需要输入的项目数
|
127
|
+
*/
|
128
|
+
fillCount: number;
|
129
|
+
}
|
130
|
+
|
131
|
+
/**
|
132
|
+
* 选择题目节点,通过多继承获得了基础功能,问题功能, 选项功能,多选功能
|
133
|
+
* 有真实对应它的节点类型
|
134
|
+
*
|
135
|
+
*/
|
136
|
+
interface CCSelectNode extends CCBNode, CCMQuestionNode, CCMOptionNode, CCMMultiSelectNode{
|
137
|
+
// 除了从多方继承来的功能,可能还有自己身上的功能
|
138
|
+
}
|
139
|
+
|
140
|
+
|
141
|
+
/**
|
142
|
+
* 填空题目节点,通过多继承获得了基础功能,问题功能, 选项功能,输入项数控制功能
|
143
|
+
* 有真实对应它的节点类型
|
144
|
+
*
|
145
|
+
*/
|
146
|
+
interface CCFillNode extends CCBNode, CCMQuestionNode, CCMOptionNode, CCMInputCountNode{
|
147
|
+
// 除了从多方继承来的功能,可能还有自己身上的功能
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
/**
|
152
|
+
* 循环控制节点,通过多继承获得了基础功能,选项功能
|
153
|
+
* 有真实对应它的节点类型
|
154
|
+
*
|
155
|
+
*/
|
156
|
+
interface CCLoopNode extends CCBNode, CCMOptionNode{
|
157
|
+
// 除了从多方继承来的功能,可能还有自己身上的功能
|
158
|
+
}
|
159
|
+
|
160
|
+
## Git commit message 约定
|
161
|
+
|
162
|
+
格式如下,具体例子可以使用 `git log` 看看。
|
163
|
+
|
164
|
+
```
|
165
|
+
|
166
|
+
[类型]: [简短描述]
|
167
|
+
|
168
|
+
[详细描述,可选]
|
169
|
+
|
170
|
+
```
|
171
|
+
|
172
|
+
类型如下:
|
173
|
+
|
174
|
+
- feat: 新功能
|
175
|
+
- fix: 修补 bug
|
176
|
+
- docs: 文档
|
177
|
+
- style: 代码格式
|
178
|
+
- refactor: 重构,即不是新增功能,也不是修改 bug 的代码变动
|
179
|
+
- test: 测试
|
180
|
+
- chore: 构建过程或辅助工具的变动
|
181
|
+
|
182
|
+
注意:本仓库配置了一些提交前检查,如果遇到提交失败,请注意看其提示信息。
|
183
|
+
```
|