apifox-mock-generator 1.0.0 → 1.2.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 +129 -1
- package/README.md +195 -63
- package/dist/package.json +1 -1
- package/dist/src/core/apifox-client.d.ts.map +1 -1
- package/dist/src/core/apifox-client.js +16 -23
- package/dist/src/core/apifox-client.js.map +1 -1
- package/dist/src/core/endpoint-filter.d.ts.map +1 -1
- package/dist/src/core/endpoint-filter.js +35 -5
- package/dist/src/core/endpoint-filter.js.map +1 -1
- package/dist/src/core/openapi-converter.d.ts.map +1 -1
- package/dist/src/core/openapi-converter.js +3 -2
- package/dist/src/core/openapi-converter.js.map +1 -1
- package/dist/src/generators/mock-generator.d.ts +2 -2
- package/dist/src/generators/mock-generator.d.ts.map +1 -1
- package/dist/src/generators/mock-generator.js +37 -9
- package/dist/src/generators/mock-generator.js.map +1 -1
- package/dist/src/generators/templates/file-architecture.d.ts +10 -0
- package/dist/src/generators/templates/file-architecture.d.ts.map +1 -0
- package/dist/src/generators/templates/file-architecture.js +18 -0
- package/dist/src/generators/templates/file-architecture.js.map +1 -0
- package/dist/src/generators/templates/mock-template.d.ts +2 -2
- package/dist/src/generators/templates/mock-template.d.ts.map +1 -1
- package/dist/src/generators/templates/mock-template.js +196 -103
- package/dist/src/generators/templates/mock-template.js.map +1 -1
- package/dist/src/generators/templates/smart-mock-rules.d.ts +47 -0
- package/dist/src/generators/templates/smart-mock-rules.d.ts.map +1 -0
- package/dist/src/generators/templates/smart-mock-rules.js +643 -0
- package/dist/src/generators/templates/smart-mock-rules.js.map +1 -0
- package/dist/src/generators/templates/type-template.d.ts +2 -14
- package/dist/src/generators/templates/type-template.d.ts.map +1 -1
- package/dist/src/generators/templates/type-template.js +279 -147
- package/dist/src/generators/templates/type-template.js.map +1 -1
- package/dist/src/generators/type-generator.d.ts.map +1 -1
- package/dist/src/generators/type-generator.js +2 -2
- package/dist/src/generators/type-generator.js.map +1 -1
- package/dist/src/types/index.d.ts +6 -4
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/mock/list.d.ts +12 -0
- package/dist/src/types/mock/list.d.ts.map +1 -0
- package/dist/src/types/mock/list.js +4 -0
- package/dist/src/types/mock/list.js.map +1 -0
- package/dist/src/types/mock/test.d.ts +12 -0
- package/dist/src/types/mock/test.d.ts.map +1 -0
- package/dist/src/types/mock/test.js +4 -0
- package/dist/src/types/mock/test.js.map +1 -0
- package/dist/src/types/mock/v1/auth/captcha.d.ts +18 -0
- package/dist/src/types/mock/v1/auth/captcha.d.ts.map +1 -0
- package/dist/src/types/mock/v1/auth/captcha.js +4 -0
- package/dist/src/types/mock/v1/auth/captcha.js.map +1 -0
- package/dist/src/types/mock/v1/auth/login/tenant.d.ts +26 -0
- package/dist/src/types/mock/v1/auth/login/tenant.d.ts.map +1 -0
- package/dist/src/types/mock/v1/auth/login/tenant.js +4 -0
- package/dist/src/types/mock/v1/auth/login/tenant.js.map +1 -0
- package/dist/src/types/mock/v1/auth/login/username.d.ts +40 -0
- package/dist/src/types/mock/v1/auth/login/username.d.ts.map +1 -0
- package/dist/src/types/mock/v1/auth/login/username.js +4 -0
- package/dist/src/types/mock/v1/auth/login/username.js.map +1 -0
- package/dist/src/types/mock/v1/auth/logout.d.ts +12 -0
- package/dist/src/types/mock/v1/auth/logout.d.ts.map +1 -0
- package/dist/src/types/mock/v1/auth/logout.js +4 -0
- package/dist/src/types/mock/v1/auth/logout.js.map +1 -0
- package/dist/src/types/mock/v1/role/list.d.ts +36 -0
- package/dist/src/types/mock/v1/role/list.d.ts.map +1 -0
- package/dist/src/types/mock/v1/role/list.js +4 -0
- package/dist/src/types/mock/v1/role/list.js.map +1 -0
- package/dist/src/types/mock/v1/role/permissions.d.ts +24 -0
- package/dist/src/types/mock/v1/role/permissions.d.ts.map +1 -0
- package/dist/src/types/mock/v1/role/permissions.js +4 -0
- package/dist/src/types/mock/v1/role/permissions.js.map +1 -0
- package/dist/src/types/mock/v1/role.d.ts +91 -0
- package/dist/src/types/mock/v1/role.d.ts.map +1 -0
- package/dist/src/types/mock/v1/role.js +4 -0
- package/dist/src/types/mock/v1/role.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/permissions.d.ts +33 -0
- package/dist/src/types/mock/v1/tenant/permissions.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/permissions.js +4 -0
- package/dist/src/types/mock/v1/tenant/permissions.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/disabled.d.ts +24 -0
- package/dist/src/types/mock/v1/tenant/user/disabled.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/disabled.js +4 -0
- package/dist/src/types/mock/v1/tenant/user/disabled.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/list.d.ts +46 -0
- package/dist/src/types/mock/v1/tenant/user/list.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/list.js +4 -0
- package/dist/src/types/mock/v1/tenant/user/list.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/role.d.ts +24 -0
- package/dist/src/types/mock/v1/tenant/user/role.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/role.js +4 -0
- package/dist/src/types/mock/v1/tenant/user/role.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/unlink.d.ts +12 -0
- package/dist/src/types/mock/v1/tenant/user/unlink.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/user/unlink.js +4 -0
- package/dist/src/types/mock/v1/tenant/user/unlink.js.map +1 -0
- package/dist/src/types/mock/v1/tenant/user.d.ts +36 -0
- package/dist/src/types/mock/v1/tenant/user.d.ts.map +1 -0
- package/dist/src/types/mock/v1/tenant/user.js +4 -0
- package/dist/src/types/mock/v1/tenant/user.js.map +1 -0
- package/dist/src/types/mock/v1/user/avatar.d.ts +22 -0
- package/dist/src/types/mock/v1/user/avatar.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user/avatar.js +4 -0
- package/dist/src/types/mock/v1/user/avatar.js.map +1 -0
- package/dist/src/types/mock/v1/user/info.d.ts +36 -0
- package/dist/src/types/mock/v1/user/info.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user/info.js +4 -0
- package/dist/src/types/mock/v1/user/info.js.map +1 -0
- package/dist/src/types/mock/v1/user/password.d.ts +24 -0
- package/dist/src/types/mock/v1/user/password.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user/password.js +4 -0
- package/dist/src/types/mock/v1/user/password.js.map +1 -0
- package/dist/src/types/mock/v1/user/permissions.d.ts +33 -0
- package/dist/src/types/mock/v1/user/permissions.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user/permissions.js +4 -0
- package/dist/src/types/mock/v1/user/permissions.js.map +1 -0
- package/dist/src/types/mock/v1/user/self.d.ts +22 -0
- package/dist/src/types/mock/v1/user/self.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user/self.js +4 -0
- package/dist/src/types/mock/v1/user/self.js.map +1 -0
- package/dist/src/types/mock/v1/user.d.ts +34 -0
- package/dist/src/types/mock/v1/user.d.ts.map +1 -0
- package/dist/src/types/mock/v1/user.js +4 -0
- package/dist/src/types/mock/v1/user.js.map +1 -0
- package/dist/src/utils/code-formatter.js +1 -1
- package/dist/src/utils/code-formatter.js.map +1 -1
- package/dist/src/utils/type-mapping.d.ts.map +1 -1
- package/dist/src/utils/type-mapping.js +7 -1
- package/dist/src/utils/type-mapping.js.map +1 -1
- package/package.json +60 -60
|
@@ -0,0 +1,643 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apifox 智能 Mock 规则引擎
|
|
3
|
+
* 根据字段名称、类型、格式等信息,智能推断合适的 Mock 数据
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 字符串类型字段的智能识别规则
|
|
7
|
+
*/
|
|
8
|
+
const STRING_FIELD_RULES = [
|
|
9
|
+
// 身份标识类
|
|
10
|
+
{
|
|
11
|
+
patterns: ['id', '_id', 'uuid', 'guid'],
|
|
12
|
+
mockTemplate: '@guid',
|
|
13
|
+
priority: 100,
|
|
14
|
+
description: '唯一标识符'
|
|
15
|
+
},
|
|
16
|
+
// 认证和安全类
|
|
17
|
+
{
|
|
18
|
+
patterns: ['token', 'access_token', 'refresh_token', 'jwt', 'auth_token'],
|
|
19
|
+
mockTemplate: '@string("lower", 32)',
|
|
20
|
+
priority: 90,
|
|
21
|
+
description: '令牌'
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
patterns: ['password', 'pwd', 'pass'],
|
|
25
|
+
mockTemplate: '@string("mixed", 12)',
|
|
26
|
+
priority: 90,
|
|
27
|
+
description: '密码'
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
patterns: ['secret', 'api_key', 'apikey'],
|
|
31
|
+
mockTemplate: '@string("lower", 40)',
|
|
32
|
+
priority: 90,
|
|
33
|
+
description: '密钥'
|
|
34
|
+
},
|
|
35
|
+
// 用户信息类
|
|
36
|
+
{
|
|
37
|
+
patterns: ['email', 'mail', 'e_mail'],
|
|
38
|
+
mockTemplate: '@email',
|
|
39
|
+
priority: 85,
|
|
40
|
+
description: '邮箱地址'
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
patterns: ['phone', 'mobile', 'telephone', 'tel', 'cellphone'],
|
|
44
|
+
mockTemplate: '/^1[3-9]\\d{9}$/',
|
|
45
|
+
priority: 85,
|
|
46
|
+
description: '手机号'
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
patterns: ['username', 'user_name', 'account', 'loginname'],
|
|
50
|
+
mockTemplate: '@name',
|
|
51
|
+
priority: 80,
|
|
52
|
+
description: '用户名'
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
patterns: ['name', 'realname', 'real_name', 'fullname', 'full_name'],
|
|
56
|
+
mockTemplate: '@cname',
|
|
57
|
+
priority: 75,
|
|
58
|
+
description: '姓名'
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
patterns: ['nickname', 'nick_name', 'displayname', 'display_name'],
|
|
62
|
+
mockTemplate: '@cname',
|
|
63
|
+
priority: 75,
|
|
64
|
+
description: '昵称'
|
|
65
|
+
},
|
|
66
|
+
// 地址和地理信息
|
|
67
|
+
{
|
|
68
|
+
patterns: ['address', 'addr', 'location'],
|
|
69
|
+
mockTemplate: '@county(true)',
|
|
70
|
+
priority: 80,
|
|
71
|
+
description: '详细地址'
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
patterns: ['province', 'prov'],
|
|
75
|
+
mockTemplate: '@province',
|
|
76
|
+
priority: 80,
|
|
77
|
+
description: '省份'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
patterns: ['city'],
|
|
81
|
+
mockTemplate: '@city',
|
|
82
|
+
priority: 80,
|
|
83
|
+
description: '城市'
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
patterns: ['county', 'district', 'area'],
|
|
87
|
+
mockTemplate: '@county',
|
|
88
|
+
priority: 80,
|
|
89
|
+
description: '区县'
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
patterns: ['zip', 'zipcode', 'zip_code', 'postcode', 'postal_code'],
|
|
93
|
+
mockTemplate: '@zip',
|
|
94
|
+
priority: 80,
|
|
95
|
+
description: '邮编'
|
|
96
|
+
},
|
|
97
|
+
// 网络和链接
|
|
98
|
+
{
|
|
99
|
+
patterns: ['url', 'link', 'href', 'website', 'web_url'],
|
|
100
|
+
mockTemplate: '@url',
|
|
101
|
+
priority: 85,
|
|
102
|
+
description: '链接地址'
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
patterns: ['domain'],
|
|
106
|
+
mockTemplate: '@domain',
|
|
107
|
+
priority: 85,
|
|
108
|
+
description: '域名'
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
patterns: ['ip', 'ipaddress', 'ip_address'],
|
|
112
|
+
mockTemplate: '@ip',
|
|
113
|
+
priority: 85,
|
|
114
|
+
description: 'IP地址'
|
|
115
|
+
},
|
|
116
|
+
// 图片和媒体
|
|
117
|
+
{
|
|
118
|
+
patterns: ['avatar', 'headimg', 'head_img', 'profile_image', 'profile_pic'],
|
|
119
|
+
mockTemplate: '@image("200x200", "@cname")',
|
|
120
|
+
priority: 85,
|
|
121
|
+
description: '头像'
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
patterns: ['image', 'img', 'picture', 'pic', 'photo', 'thumbnail', 'cover'],
|
|
125
|
+
mockTemplate: '@image("400x300")',
|
|
126
|
+
priority: 80,
|
|
127
|
+
description: '图片'
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
patterns: ['video', 'video_url'],
|
|
131
|
+
mockTemplate: '@url("http", "video.example.com")',
|
|
132
|
+
priority: 80,
|
|
133
|
+
description: '视频'
|
|
134
|
+
},
|
|
135
|
+
// 时间日期类
|
|
136
|
+
{
|
|
137
|
+
patterns: ['created_at', 'createdat', 'create_time', 'createtime', 'gmt_create'],
|
|
138
|
+
mockTemplate: '@datetime',
|
|
139
|
+
priority: 85,
|
|
140
|
+
description: '创建时间'
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
patterns: ['updated_at', 'updatedat', 'update_time', 'updatetime', 'gmt_modified', 'modify_time'],
|
|
144
|
+
mockTemplate: '@datetime',
|
|
145
|
+
priority: 85,
|
|
146
|
+
description: '更新时间'
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
patterns: ['datetime', 'date_time', 'timestamp'],
|
|
150
|
+
mockTemplate: '@datetime',
|
|
151
|
+
priority: 80,
|
|
152
|
+
description: '日期时间'
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
patterns: ['date', 'day'],
|
|
156
|
+
mockTemplate: '@date',
|
|
157
|
+
priority: 80,
|
|
158
|
+
description: '日期'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
patterns: ['time'],
|
|
162
|
+
mockTemplate: '@time',
|
|
163
|
+
priority: 80,
|
|
164
|
+
description: '时间'
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
patterns: ['year'],
|
|
168
|
+
mockTemplate: '@integer(2000, 2030)',
|
|
169
|
+
priority: 80,
|
|
170
|
+
description: '年份'
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
patterns: ['month'],
|
|
174
|
+
mockTemplate: '@integer(1, 12)',
|
|
175
|
+
priority: 80,
|
|
176
|
+
description: '月份'
|
|
177
|
+
},
|
|
178
|
+
// 内容和文本
|
|
179
|
+
{
|
|
180
|
+
patterns: ['title', 'subject', 'headline'],
|
|
181
|
+
mockTemplate: '@ctitle(5, 15)',
|
|
182
|
+
priority: 75,
|
|
183
|
+
description: '标题'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
patterns: ['content', 'body', 'text'],
|
|
187
|
+
mockTemplate: '@cparagraph(3, 7)',
|
|
188
|
+
priority: 75,
|
|
189
|
+
description: '内容'
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
patterns: ['desc', 'description', 'summary', 'intro', 'introduction'],
|
|
193
|
+
mockTemplate: '@cparagraph(1, 3)',
|
|
194
|
+
priority: 75,
|
|
195
|
+
description: '描述'
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
patterns: ['msg', 'message', 'notice', 'tip'],
|
|
199
|
+
mockTemplate: '@csentence(5, 15)',
|
|
200
|
+
priority: 75,
|
|
201
|
+
description: '消息'
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
patterns: ['remark', 'comment', 'note'],
|
|
205
|
+
mockTemplate: '@csentence(10, 30)',
|
|
206
|
+
priority: 75,
|
|
207
|
+
description: '备注'
|
|
208
|
+
},
|
|
209
|
+
// 业务相关
|
|
210
|
+
{
|
|
211
|
+
patterns: ['company', 'company_name', 'organization', 'org_name'],
|
|
212
|
+
mockTemplate: '@ctitle(4, 10) + "有限公司"',
|
|
213
|
+
priority: 80,
|
|
214
|
+
description: '公司名称'
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
patterns: ['bank', 'bank_name'],
|
|
218
|
+
mockTemplate: '@pick(["中国银行", "工商银行", "建设银行", "农业银行", "招商银行"])',
|
|
219
|
+
priority: 80,
|
|
220
|
+
description: '银行名称'
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
patterns: ['bank_account', 'card_no', 'card_number', 'account_no'],
|
|
224
|
+
mockTemplate: '/^\\d{16,19}$/',
|
|
225
|
+
priority: 80,
|
|
226
|
+
description: '银行卡号'
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
patterns: ['idcard', 'id_card', 'id_number', 'identity'],
|
|
230
|
+
mockTemplate: '@id',
|
|
231
|
+
priority: 85,
|
|
232
|
+
description: '身份证号'
|
|
233
|
+
},
|
|
234
|
+
// 状态和代码
|
|
235
|
+
{
|
|
236
|
+
patterns: ['code', 'status_code', 'error_code', 'err_code'],
|
|
237
|
+
mockTemplate: '@pick(["0", "200", "SUCCESS"])',
|
|
238
|
+
priority: 70,
|
|
239
|
+
description: '状态码'
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
patterns: ['status', 'state'],
|
|
243
|
+
mockTemplate: '@pick(["active", "inactive", "pending"])',
|
|
244
|
+
priority: 70,
|
|
245
|
+
description: '状态'
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
patterns: ['type', 'category', 'kind'],
|
|
249
|
+
mockTemplate: '@integer(1, 5)',
|
|
250
|
+
priority: 60,
|
|
251
|
+
description: '类型'
|
|
252
|
+
},
|
|
253
|
+
// 颜色
|
|
254
|
+
{
|
|
255
|
+
patterns: ['color', 'colour'],
|
|
256
|
+
mockTemplate: '@color',
|
|
257
|
+
priority: 80,
|
|
258
|
+
description: '颜色'
|
|
259
|
+
},
|
|
260
|
+
// 标签
|
|
261
|
+
{
|
|
262
|
+
patterns: ['tag', 'tags', 'label', 'labels'],
|
|
263
|
+
mockTemplate: '@cword(2, 6)',
|
|
264
|
+
priority: 70,
|
|
265
|
+
description: '标签'
|
|
266
|
+
}
|
|
267
|
+
];
|
|
268
|
+
/**
|
|
269
|
+
* 数字类型字段的智能识别规则
|
|
270
|
+
*/
|
|
271
|
+
const NUMBER_FIELD_RULES = [
|
|
272
|
+
// 状态码
|
|
273
|
+
{
|
|
274
|
+
patterns: ['code', 'status_code', 'error_code', 'err_code', 'ret_code', 'return_code'],
|
|
275
|
+
mockTemplate: '0',
|
|
276
|
+
priority: 90,
|
|
277
|
+
description: '状态码(通常0表示成功)'
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
patterns: ['status', 'state'],
|
|
281
|
+
mockTemplate: '@integer(0, 2)',
|
|
282
|
+
priority: 85,
|
|
283
|
+
description: '状态值'
|
|
284
|
+
},
|
|
285
|
+
// 标识符
|
|
286
|
+
{
|
|
287
|
+
patterns: ['id', '_id', 'uid', 'user_id', 'userid'],
|
|
288
|
+
mockTemplate: '@integer(10000, 99999)',
|
|
289
|
+
priority: 90,
|
|
290
|
+
description: '数字ID'
|
|
291
|
+
},
|
|
292
|
+
// 计数相关
|
|
293
|
+
{
|
|
294
|
+
patterns: ['count', 'total', 'sum', 'number', 'num'],
|
|
295
|
+
mockTemplate: '@integer(0, 1000)',
|
|
296
|
+
priority: 80,
|
|
297
|
+
description: '计数'
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
patterns: ['views', 'view_count', 'read_count', 'reads', 'pv'],
|
|
301
|
+
mockTemplate: '@integer(100, 10000)',
|
|
302
|
+
priority: 85,
|
|
303
|
+
description: '浏览量'
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
patterns: ['likes', 'like_count', 'favor_count', 'praise_count'],
|
|
307
|
+
mockTemplate: '@integer(0, 1000)',
|
|
308
|
+
priority: 85,
|
|
309
|
+
description: '点赞数'
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
patterns: ['comments', 'comment_count', 'reply_count'],
|
|
313
|
+
mockTemplate: '@integer(0, 500)',
|
|
314
|
+
priority: 85,
|
|
315
|
+
description: '评论数'
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
patterns: ['followers', 'follower_count', 'fans', 'fans_count'],
|
|
319
|
+
mockTemplate: '@integer(0, 50000)',
|
|
320
|
+
priority: 85,
|
|
321
|
+
description: '粉丝数'
|
|
322
|
+
},
|
|
323
|
+
// 分页相关
|
|
324
|
+
{
|
|
325
|
+
patterns: ['page', 'page_num', 'pagenum', 'current_page', 'current'],
|
|
326
|
+
mockTemplate: '@integer(1, 10)',
|
|
327
|
+
priority: 90,
|
|
328
|
+
description: '页码'
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
patterns: ['size', 'page_size', 'pagesize', 'limit', 'per_page'],
|
|
332
|
+
mockTemplate: '@integer(10, 50)',
|
|
333
|
+
priority: 90,
|
|
334
|
+
description: '每页数量'
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
patterns: ['total_pages', 'pages'],
|
|
338
|
+
mockTemplate: '@integer(1, 100)',
|
|
339
|
+
priority: 85,
|
|
340
|
+
description: '总页数'
|
|
341
|
+
},
|
|
342
|
+
// 金额和价格
|
|
343
|
+
{
|
|
344
|
+
patterns: ['price', 'amount', 'money', 'cost', 'fee'],
|
|
345
|
+
mockTemplate: '@float(0, 10000, 2, 2)',
|
|
346
|
+
priority: 90,
|
|
347
|
+
description: '金额'
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
patterns: ['balance', 'account_balance'],
|
|
351
|
+
mockTemplate: '@float(0, 100000, 2, 2)',
|
|
352
|
+
priority: 90,
|
|
353
|
+
description: '余额'
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
patterns: ['salary', 'income', 'wage'],
|
|
357
|
+
mockTemplate: '@integer(3000, 30000)',
|
|
358
|
+
priority: 85,
|
|
359
|
+
description: '薪资'
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
patterns: ['discount', 'rate'],
|
|
363
|
+
mockTemplate: '@float(0, 1, 2, 2)',
|
|
364
|
+
priority: 85,
|
|
365
|
+
description: '折扣率'
|
|
366
|
+
},
|
|
367
|
+
// 年龄和时间
|
|
368
|
+
{
|
|
369
|
+
patterns: ['age'],
|
|
370
|
+
mockTemplate: '@integer(18, 60)',
|
|
371
|
+
priority: 90,
|
|
372
|
+
description: '年龄'
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
patterns: ['year'],
|
|
376
|
+
mockTemplate: '@integer(2000, 2030)',
|
|
377
|
+
priority: 85,
|
|
378
|
+
description: '年份'
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
patterns: ['month'],
|
|
382
|
+
mockTemplate: '@integer(1, 12)',
|
|
383
|
+
priority: 85,
|
|
384
|
+
description: '月份'
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
patterns: ['day'],
|
|
388
|
+
mockTemplate: '@integer(1, 31)',
|
|
389
|
+
priority: 85,
|
|
390
|
+
description: '日期'
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
patterns: ['hour'],
|
|
394
|
+
mockTemplate: '@integer(0, 23)',
|
|
395
|
+
priority: 85,
|
|
396
|
+
description: '小时'
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
patterns: ['minute'],
|
|
400
|
+
mockTemplate: '@integer(0, 59)',
|
|
401
|
+
priority: 85,
|
|
402
|
+
description: '分钟'
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
patterns: ['second'],
|
|
406
|
+
mockTemplate: '@integer(0, 59)',
|
|
407
|
+
priority: 85,
|
|
408
|
+
description: '秒'
|
|
409
|
+
},
|
|
410
|
+
// 尺寸和度量
|
|
411
|
+
{
|
|
412
|
+
patterns: ['width', 'height', 'length'],
|
|
413
|
+
mockTemplate: '@integer(100, 2000)',
|
|
414
|
+
priority: 80,
|
|
415
|
+
description: '尺寸'
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
patterns: ['weight'],
|
|
419
|
+
mockTemplate: '@float(50, 100, 2, 2)',
|
|
420
|
+
priority: 80,
|
|
421
|
+
description: '重量'
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
patterns: ['quantity', 'qty', 'stock'],
|
|
425
|
+
mockTemplate: '@integer(0, 1000)',
|
|
426
|
+
priority: 80,
|
|
427
|
+
description: '数量'
|
|
428
|
+
},
|
|
429
|
+
// 百分比和比率
|
|
430
|
+
{
|
|
431
|
+
patterns: ['percent', 'percentage', 'ratio'],
|
|
432
|
+
mockTemplate: '@integer(0, 100)',
|
|
433
|
+
priority: 85,
|
|
434
|
+
description: '百分比'
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
patterns: ['score', 'rating', 'grade'],
|
|
438
|
+
mockTemplate: '@float(0, 5, 1, 1)',
|
|
439
|
+
priority: 85,
|
|
440
|
+
description: '评分'
|
|
441
|
+
},
|
|
442
|
+
// 排序和索引
|
|
443
|
+
{
|
|
444
|
+
patterns: ['index', 'order', 'sort', 'position', 'rank', 'seq', 'sequence'],
|
|
445
|
+
mockTemplate: '@integer(1, 100)',
|
|
446
|
+
priority: 80,
|
|
447
|
+
description: '序号'
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
patterns: ['level', 'tier', 'grade_level'],
|
|
451
|
+
mockTemplate: '@integer(1, 10)',
|
|
452
|
+
priority: 80,
|
|
453
|
+
description: '等级'
|
|
454
|
+
},
|
|
455
|
+
// 版本
|
|
456
|
+
{
|
|
457
|
+
patterns: ['version', 'ver'],
|
|
458
|
+
mockTemplate: '@integer(1, 10)',
|
|
459
|
+
priority: 80,
|
|
460
|
+
description: '版本号'
|
|
461
|
+
}
|
|
462
|
+
];
|
|
463
|
+
/**
|
|
464
|
+
* 智能匹配字段名,返回对应的 Mock 模板
|
|
465
|
+
*/
|
|
466
|
+
export function matchFieldPattern(fieldName, fieldType, rules) {
|
|
467
|
+
if (!fieldName)
|
|
468
|
+
return null;
|
|
469
|
+
const lowerFieldName = fieldName.toLowerCase();
|
|
470
|
+
// 按优先级排序规则
|
|
471
|
+
const sortedRules = [...rules].sort((a, b) => b.priority - a.priority);
|
|
472
|
+
// 查找匹配的规则
|
|
473
|
+
for (const rule of sortedRules) {
|
|
474
|
+
for (const pattern of rule.patterns) {
|
|
475
|
+
// 完全匹配
|
|
476
|
+
if (lowerFieldName === pattern.toLowerCase()) {
|
|
477
|
+
return rule.mockTemplate;
|
|
478
|
+
}
|
|
479
|
+
// 包含匹配(字段名包含模式,或以模式开头/结尾)
|
|
480
|
+
if (lowerFieldName.includes(pattern.toLowerCase()) ||
|
|
481
|
+
lowerFieldName.startsWith(pattern.toLowerCase() + '_') ||
|
|
482
|
+
lowerFieldName.endsWith('_' + pattern.toLowerCase())) {
|
|
483
|
+
return rule.mockTemplate;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
return null;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* 为字符串字段生成智能 Mock 值
|
|
491
|
+
*/
|
|
492
|
+
export function generateSmartStringMock(schema, fieldName) {
|
|
493
|
+
// 1. 优先使用枚举值
|
|
494
|
+
if (schema.enum && schema.enum.length > 0) {
|
|
495
|
+
const enumValues = schema.enum.map((v) => `"${v}"`).join(', ');
|
|
496
|
+
return `@pick([${enumValues}])`;
|
|
497
|
+
}
|
|
498
|
+
// 2. 根据 format 生成
|
|
499
|
+
if (schema.format) {
|
|
500
|
+
switch (schema.format) {
|
|
501
|
+
case 'date-time':
|
|
502
|
+
return '@datetime';
|
|
503
|
+
case 'date':
|
|
504
|
+
return '@date';
|
|
505
|
+
case 'time':
|
|
506
|
+
return '@time';
|
|
507
|
+
case 'email':
|
|
508
|
+
return '@email';
|
|
509
|
+
case 'uri':
|
|
510
|
+
case 'url':
|
|
511
|
+
return '@url';
|
|
512
|
+
case 'uuid':
|
|
513
|
+
return '@guid';
|
|
514
|
+
case 'ipv4':
|
|
515
|
+
return '@ip';
|
|
516
|
+
default:
|
|
517
|
+
break;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
// 3. 根据字段名智能匹配
|
|
521
|
+
if (fieldName) {
|
|
522
|
+
const matchedTemplate = matchFieldPattern(fieldName, 'string', STRING_FIELD_RULES);
|
|
523
|
+
if (matchedTemplate) {
|
|
524
|
+
return matchedTemplate;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
// 4. 使用示例值
|
|
528
|
+
if (schema.example) {
|
|
529
|
+
return `"${schema.example}"`;
|
|
530
|
+
}
|
|
531
|
+
// 5. 根据字符串长度限制
|
|
532
|
+
if (schema.minLength !== undefined || schema.maxLength !== undefined) {
|
|
533
|
+
const minLen = schema.minLength || 5;
|
|
534
|
+
const maxLen = schema.maxLength || Math.max(minLen + 5, 10);
|
|
535
|
+
return `@string(${minLen}, ${maxLen})`;
|
|
536
|
+
}
|
|
537
|
+
// 6. 默认规则:中文词组
|
|
538
|
+
return '@cword(3, 8)';
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* 为数字字段生成智能 Mock 值
|
|
542
|
+
*/
|
|
543
|
+
export function generateSmartNumberMock(schema, fieldName) {
|
|
544
|
+
const isInteger = schema.type === 'integer';
|
|
545
|
+
// 1. 优先使用枚举值
|
|
546
|
+
if (schema.enum && schema.enum.length > 0) {
|
|
547
|
+
const enumValues = schema.enum.join(', ');
|
|
548
|
+
return `@pick([${enumValues}])`;
|
|
549
|
+
}
|
|
550
|
+
// 2. 根据字段名智能匹配
|
|
551
|
+
if (fieldName) {
|
|
552
|
+
const matchedTemplate = matchFieldPattern(fieldName, isInteger ? 'integer' : 'number', NUMBER_FIELD_RULES);
|
|
553
|
+
if (matchedTemplate) {
|
|
554
|
+
return matchedTemplate;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
// 3. 根据范围生成
|
|
558
|
+
const min = schema.minimum ?? (isInteger ? 0 : 0);
|
|
559
|
+
const max = schema.maximum ?? (isInteger ? 100 : 100);
|
|
560
|
+
if (schema.minimum !== undefined || schema.maximum !== undefined) {
|
|
561
|
+
if (isInteger) {
|
|
562
|
+
return `@integer(${min}, ${max})`;
|
|
563
|
+
}
|
|
564
|
+
else {
|
|
565
|
+
return `@float(${min}, ${max}, 2, 2)`;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
// 4. 使用示例值
|
|
569
|
+
if (schema.example !== undefined) {
|
|
570
|
+
return schema.example.toString();
|
|
571
|
+
}
|
|
572
|
+
// 5. 默认规则
|
|
573
|
+
if (isInteger) {
|
|
574
|
+
return '@integer(1, 100)';
|
|
575
|
+
}
|
|
576
|
+
else {
|
|
577
|
+
return '@float(0, 100, 2, 2)';
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
/**
|
|
581
|
+
* 为布尔字段生成智能 Mock 值
|
|
582
|
+
*/
|
|
583
|
+
export function generateSmartBooleanMock(schema, fieldName) {
|
|
584
|
+
// 如果字段名包含特定关键词,返回倾向性的值
|
|
585
|
+
if (fieldName) {
|
|
586
|
+
const lowerName = fieldName.toLowerCase();
|
|
587
|
+
// 这些字段倾向于返回 true
|
|
588
|
+
if (lowerName.includes('is') || lowerName.includes('has') || lowerName.includes('enable')) {
|
|
589
|
+
return '@boolean';
|
|
590
|
+
}
|
|
591
|
+
// deleted, disabled 倾向于返回 false
|
|
592
|
+
if (lowerName.includes('delete') || lowerName.includes('disable')) {
|
|
593
|
+
return 'false';
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
return '@boolean';
|
|
597
|
+
}
|
|
598
|
+
/**
|
|
599
|
+
* 生成数组的智能 Mock
|
|
600
|
+
*/
|
|
601
|
+
export function generateSmartArrayMock(itemMock, schema) {
|
|
602
|
+
// 根据数组长度限制
|
|
603
|
+
const minItems = schema?.minItems ?? 1;
|
|
604
|
+
const maxItems = schema?.maxItems ?? 5;
|
|
605
|
+
// 使用 Mock.js 的数组生成语法
|
|
606
|
+
if (minItems === maxItems) {
|
|
607
|
+
return `'data|${minItems}': [${itemMock}]`;
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
return `'data|${minItems}-${maxItems}': [${itemMock}]`;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
/**
|
|
614
|
+
* 检测字段是否为时间戳类型
|
|
615
|
+
*/
|
|
616
|
+
export function isTimestampField(fieldName, schema) {
|
|
617
|
+
if (!fieldName)
|
|
618
|
+
return false;
|
|
619
|
+
const lowerName = fieldName.toLowerCase();
|
|
620
|
+
const isNumberType = schema.type === 'number' || schema.type === 'integer';
|
|
621
|
+
// 时间戳相关的字段名
|
|
622
|
+
const timestampPatterns = [
|
|
623
|
+
'timestamp',
|
|
624
|
+
'time_stamp',
|
|
625
|
+
'unix_time',
|
|
626
|
+
'epoch',
|
|
627
|
+
'created_at',
|
|
628
|
+
'updated_at',
|
|
629
|
+
'deleted_at',
|
|
630
|
+
'create_time',
|
|
631
|
+
'update_time',
|
|
632
|
+
'delete_time'
|
|
633
|
+
];
|
|
634
|
+
return isNumberType && timestampPatterns.some(pattern => lowerName.includes(pattern));
|
|
635
|
+
}
|
|
636
|
+
/**
|
|
637
|
+
* 生成时间戳的 Mock 值
|
|
638
|
+
*/
|
|
639
|
+
export function generateTimestampMock() {
|
|
640
|
+
// 生成当前时间前后一年内的随机时间戳(秒级)
|
|
641
|
+
return '@integer(1640000000, 1800000000)';
|
|
642
|
+
}
|
|
643
|
+
//# sourceMappingURL=smart-mock-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-mock-rules.js","sourceRoot":"","sources":["../../../../src/generators/templates/smart-mock-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,6 @@
|
|
|
1
1
|
import type { ApiEndpoint } from '../../types/index.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* 为单个接口生成命名空间内容
|
|
4
4
|
*/
|
|
5
|
-
export declare function
|
|
6
|
-
/**
|
|
7
|
-
* 生成接口体内容(属性名带引号)
|
|
8
|
-
*/
|
|
9
|
-
export declare function generateInterfaceBodyWithQuotes(schema: any, definitions: any, indent: string): string;
|
|
10
|
-
/**
|
|
11
|
-
* 生成嵌套类型和接口(用于复杂请求参数)
|
|
12
|
-
*/
|
|
13
|
-
export declare function generateNestedTypesAndInterfaces(endpoint: ApiEndpoint, schemas: any, namespaceName: string): string;
|
|
14
|
-
/**
|
|
15
|
-
* 生成请求体属性(带引号)
|
|
16
|
-
*/
|
|
17
|
-
export declare function generateRequestBodyPropertiesWithQuotes(schema: any, definitions: any, namespaceName: string, indent: string): string;
|
|
5
|
+
export declare function generateNamespaceContent(endpoint: ApiEndpoint, schemas: any): string;
|
|
18
6
|
//# sourceMappingURL=type-template.d.ts.map
|