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.
Files changed (127) hide show
  1. package/CHANGELOG.md +129 -1
  2. package/README.md +195 -63
  3. package/dist/package.json +1 -1
  4. package/dist/src/core/apifox-client.d.ts.map +1 -1
  5. package/dist/src/core/apifox-client.js +16 -23
  6. package/dist/src/core/apifox-client.js.map +1 -1
  7. package/dist/src/core/endpoint-filter.d.ts.map +1 -1
  8. package/dist/src/core/endpoint-filter.js +35 -5
  9. package/dist/src/core/endpoint-filter.js.map +1 -1
  10. package/dist/src/core/openapi-converter.d.ts.map +1 -1
  11. package/dist/src/core/openapi-converter.js +3 -2
  12. package/dist/src/core/openapi-converter.js.map +1 -1
  13. package/dist/src/generators/mock-generator.d.ts +2 -2
  14. package/dist/src/generators/mock-generator.d.ts.map +1 -1
  15. package/dist/src/generators/mock-generator.js +37 -9
  16. package/dist/src/generators/mock-generator.js.map +1 -1
  17. package/dist/src/generators/templates/file-architecture.d.ts +10 -0
  18. package/dist/src/generators/templates/file-architecture.d.ts.map +1 -0
  19. package/dist/src/generators/templates/file-architecture.js +18 -0
  20. package/dist/src/generators/templates/file-architecture.js.map +1 -0
  21. package/dist/src/generators/templates/mock-template.d.ts +2 -2
  22. package/dist/src/generators/templates/mock-template.d.ts.map +1 -1
  23. package/dist/src/generators/templates/mock-template.js +196 -103
  24. package/dist/src/generators/templates/mock-template.js.map +1 -1
  25. package/dist/src/generators/templates/smart-mock-rules.d.ts +47 -0
  26. package/dist/src/generators/templates/smart-mock-rules.d.ts.map +1 -0
  27. package/dist/src/generators/templates/smart-mock-rules.js +643 -0
  28. package/dist/src/generators/templates/smart-mock-rules.js.map +1 -0
  29. package/dist/src/generators/templates/type-template.d.ts +2 -14
  30. package/dist/src/generators/templates/type-template.d.ts.map +1 -1
  31. package/dist/src/generators/templates/type-template.js +279 -147
  32. package/dist/src/generators/templates/type-template.js.map +1 -1
  33. package/dist/src/generators/type-generator.d.ts.map +1 -1
  34. package/dist/src/generators/type-generator.js +2 -2
  35. package/dist/src/generators/type-generator.js.map +1 -1
  36. package/dist/src/types/index.d.ts +6 -4
  37. package/dist/src/types/index.d.ts.map +1 -1
  38. package/dist/src/types/mock/list.d.ts +12 -0
  39. package/dist/src/types/mock/list.d.ts.map +1 -0
  40. package/dist/src/types/mock/list.js +4 -0
  41. package/dist/src/types/mock/list.js.map +1 -0
  42. package/dist/src/types/mock/test.d.ts +12 -0
  43. package/dist/src/types/mock/test.d.ts.map +1 -0
  44. package/dist/src/types/mock/test.js +4 -0
  45. package/dist/src/types/mock/test.js.map +1 -0
  46. package/dist/src/types/mock/v1/auth/captcha.d.ts +18 -0
  47. package/dist/src/types/mock/v1/auth/captcha.d.ts.map +1 -0
  48. package/dist/src/types/mock/v1/auth/captcha.js +4 -0
  49. package/dist/src/types/mock/v1/auth/captcha.js.map +1 -0
  50. package/dist/src/types/mock/v1/auth/login/tenant.d.ts +26 -0
  51. package/dist/src/types/mock/v1/auth/login/tenant.d.ts.map +1 -0
  52. package/dist/src/types/mock/v1/auth/login/tenant.js +4 -0
  53. package/dist/src/types/mock/v1/auth/login/tenant.js.map +1 -0
  54. package/dist/src/types/mock/v1/auth/login/username.d.ts +40 -0
  55. package/dist/src/types/mock/v1/auth/login/username.d.ts.map +1 -0
  56. package/dist/src/types/mock/v1/auth/login/username.js +4 -0
  57. package/dist/src/types/mock/v1/auth/login/username.js.map +1 -0
  58. package/dist/src/types/mock/v1/auth/logout.d.ts +12 -0
  59. package/dist/src/types/mock/v1/auth/logout.d.ts.map +1 -0
  60. package/dist/src/types/mock/v1/auth/logout.js +4 -0
  61. package/dist/src/types/mock/v1/auth/logout.js.map +1 -0
  62. package/dist/src/types/mock/v1/role/list.d.ts +36 -0
  63. package/dist/src/types/mock/v1/role/list.d.ts.map +1 -0
  64. package/dist/src/types/mock/v1/role/list.js +4 -0
  65. package/dist/src/types/mock/v1/role/list.js.map +1 -0
  66. package/dist/src/types/mock/v1/role/permissions.d.ts +24 -0
  67. package/dist/src/types/mock/v1/role/permissions.d.ts.map +1 -0
  68. package/dist/src/types/mock/v1/role/permissions.js +4 -0
  69. package/dist/src/types/mock/v1/role/permissions.js.map +1 -0
  70. package/dist/src/types/mock/v1/role.d.ts +91 -0
  71. package/dist/src/types/mock/v1/role.d.ts.map +1 -0
  72. package/dist/src/types/mock/v1/role.js +4 -0
  73. package/dist/src/types/mock/v1/role.js.map +1 -0
  74. package/dist/src/types/mock/v1/tenant/permissions.d.ts +33 -0
  75. package/dist/src/types/mock/v1/tenant/permissions.d.ts.map +1 -0
  76. package/dist/src/types/mock/v1/tenant/permissions.js +4 -0
  77. package/dist/src/types/mock/v1/tenant/permissions.js.map +1 -0
  78. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts +24 -0
  79. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts.map +1 -0
  80. package/dist/src/types/mock/v1/tenant/user/disabled.js +4 -0
  81. package/dist/src/types/mock/v1/tenant/user/disabled.js.map +1 -0
  82. package/dist/src/types/mock/v1/tenant/user/list.d.ts +46 -0
  83. package/dist/src/types/mock/v1/tenant/user/list.d.ts.map +1 -0
  84. package/dist/src/types/mock/v1/tenant/user/list.js +4 -0
  85. package/dist/src/types/mock/v1/tenant/user/list.js.map +1 -0
  86. package/dist/src/types/mock/v1/tenant/user/role.d.ts +24 -0
  87. package/dist/src/types/mock/v1/tenant/user/role.d.ts.map +1 -0
  88. package/dist/src/types/mock/v1/tenant/user/role.js +4 -0
  89. package/dist/src/types/mock/v1/tenant/user/role.js.map +1 -0
  90. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts +12 -0
  91. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts.map +1 -0
  92. package/dist/src/types/mock/v1/tenant/user/unlink.js +4 -0
  93. package/dist/src/types/mock/v1/tenant/user/unlink.js.map +1 -0
  94. package/dist/src/types/mock/v1/tenant/user.d.ts +36 -0
  95. package/dist/src/types/mock/v1/tenant/user.d.ts.map +1 -0
  96. package/dist/src/types/mock/v1/tenant/user.js +4 -0
  97. package/dist/src/types/mock/v1/tenant/user.js.map +1 -0
  98. package/dist/src/types/mock/v1/user/avatar.d.ts +22 -0
  99. package/dist/src/types/mock/v1/user/avatar.d.ts.map +1 -0
  100. package/dist/src/types/mock/v1/user/avatar.js +4 -0
  101. package/dist/src/types/mock/v1/user/avatar.js.map +1 -0
  102. package/dist/src/types/mock/v1/user/info.d.ts +36 -0
  103. package/dist/src/types/mock/v1/user/info.d.ts.map +1 -0
  104. package/dist/src/types/mock/v1/user/info.js +4 -0
  105. package/dist/src/types/mock/v1/user/info.js.map +1 -0
  106. package/dist/src/types/mock/v1/user/password.d.ts +24 -0
  107. package/dist/src/types/mock/v1/user/password.d.ts.map +1 -0
  108. package/dist/src/types/mock/v1/user/password.js +4 -0
  109. package/dist/src/types/mock/v1/user/password.js.map +1 -0
  110. package/dist/src/types/mock/v1/user/permissions.d.ts +33 -0
  111. package/dist/src/types/mock/v1/user/permissions.d.ts.map +1 -0
  112. package/dist/src/types/mock/v1/user/permissions.js +4 -0
  113. package/dist/src/types/mock/v1/user/permissions.js.map +1 -0
  114. package/dist/src/types/mock/v1/user/self.d.ts +22 -0
  115. package/dist/src/types/mock/v1/user/self.d.ts.map +1 -0
  116. package/dist/src/types/mock/v1/user/self.js +4 -0
  117. package/dist/src/types/mock/v1/user/self.js.map +1 -0
  118. package/dist/src/types/mock/v1/user.d.ts +34 -0
  119. package/dist/src/types/mock/v1/user.d.ts.map +1 -0
  120. package/dist/src/types/mock/v1/user.js +4 -0
  121. package/dist/src/types/mock/v1/user.js.map +1 -0
  122. package/dist/src/utils/code-formatter.js +1 -1
  123. package/dist/src/utils/code-formatter.js.map +1 -1
  124. package/dist/src/utils/type-mapping.d.ts.map +1 -1
  125. package/dist/src/utils/type-mapping.js +7 -1
  126. package/dist/src/utils/type-mapping.js.map +1 -1
  127. package/package.json +60 -60
@@ -1,8 +1,8 @@
1
1
  import { mapTypeToLodashCheck } from '../../utils/type-mapping.js';
2
2
  /**
3
- * 生成 Mock 文件内容(新格式,ES Module 版本,支持增量更新)
3
+ * 生成单个接口的 Mock 内容(不包含 import 语句)
4
4
  */
5
- export function generateMockFileContent(endpoint, definitions) {
5
+ export function generateMockEndpointContent(endpoint, definitions) {
6
6
  const method = endpoint.method.toUpperCase();
7
7
  // 生成方法前缀和命名空间(用于注释标记)
8
8
  const methodPrefix = endpoint.method.charAt(0).toUpperCase() + endpoint.method.slice(1).toLowerCase();
@@ -15,7 +15,8 @@ export function generateMockFileContent(endpoint, definitions) {
15
15
  // 生成参数校验数组
16
16
  const mockParams = generateMockParams(endpoint);
17
17
  // 生成 Mock.js 模板(用于响应数据)
18
- const mockTemplate = generateMockTemplateForResponse(endpoint.responseBody, definitions);
18
+ const interfaceInfo = `${endpoint.path}[${method}]`;
19
+ const mockTemplate = generateMockTemplateForResponse(endpoint.responseBody, definitions, '\t\t\t\t\t', interfaceInfo);
19
20
  // 生成注释标记
20
21
  const commentTag = `${endpoint.path}[${method}]`;
21
22
  const content = `//[start]${commentTag}
@@ -24,11 +25,8 @@ export function generateMockFileContent(endpoint, definitions) {
24
25
  * @apiURI ${endpoint.path}
25
26
  * @apiRequestType ${method}
26
27
  */
27
- import Mock from "mockjs";
28
- import lodash from "lodash";
29
-
30
28
  export const check_${namespaceName} = function () {
31
- \t//ture 本地数据, false 远程服务器数据
29
+ \t//true 本地数据, false 远程服务器数据
32
30
  \treturn false;
33
31
  };
34
32
 
@@ -63,7 +61,7 @@ export function ${namespaceName}(query, body, ctx) {
63
61
  return new Promise(res => {
64
62
  setTimeout(() => {
65
63
  res(Mock.mock(${mockTemplate}))
66
- }, Math.random() * 3000)
64
+ }, Math.random() * 300)
67
65
 
68
66
  })
69
67
  ;
@@ -71,8 +69,8 @@ export function ${namespaceName}(query, body, ctx) {
71
69
 
72
70
 
73
71
  return {
74
- code: 1,
75
- msg: '请检查请求的method或者URI的query是否正确'
72
+ "code": 1,
73
+ "msg": '请检查请求的method或者URI的query是否正确'
76
74
  };
77
75
  }
78
76
  //[end]${commentTag}
@@ -129,14 +127,14 @@ function extractParamsFromSchema(schema, required = []) {
129
127
  /**
130
128
  * 生成 Mock.js 响应模板(格式化为对象字面量)
131
129
  */
132
- function generateMockTemplateForResponse(schema, definitions, indent = '\t\t\t\t\t') {
130
+ function generateMockTemplateForResponse(schema, definitions, indent = '\t\t\t\t\t', interfaceInfo) {
133
131
  if (!schema)
134
132
  return '{}';
135
133
  // 处理引用
136
134
  if (schema.$ref) {
137
135
  const refName = schema.$ref.split('/').pop();
138
136
  if (definitions?.[refName]) {
139
- return generateMockTemplateForResponse(definitions[refName], definitions, indent);
137
+ return generateMockTemplateForResponse(definitions[refName], definitions, indent, interfaceInfo);
140
138
  }
141
139
  }
142
140
  // 根据类型生成模板
@@ -147,45 +145,133 @@ function generateMockTemplateForResponse(schema, definitions, indent = '\t\t\t\t
147
145
  }
148
146
  let objContent = '{';
149
147
  const props = Object.entries(schema.properties);
148
+ // 检查是否同时存在 code 和 msg 字段
149
+ const hasCode = props.some(([key]) => key === 'code');
150
+ const hasMsg = props.some(([key]) => key === 'msg');
151
+ const needsSharedRandom = hasCode && hasMsg;
150
152
  props.forEach(([key, prop], index) => {
151
153
  const propSchema = prop;
152
- const mockValue = generateMockValueForField(key, propSchema, definitions);
154
+ let mockValue = generateMockValueForField(key, propSchema, definitions, interfaceInfo);
155
+ // 如果同时存在 code 和 msg 字段,使用共享的随机数
156
+ if (needsSharedRandom) {
157
+ if (key === 'code' && (propSchema.type === 'integer' || propSchema.type === 'number')) {
158
+ mockValue = 'randomCode';
159
+ }
160
+ else if (key === 'msg' && propSchema.type === 'string') {
161
+ const apiInfo = interfaceInfo;
162
+ mockValue = `randomCode === 1 ? "接口调用失败:${apiInfo}" : "接口调用成功"`;
163
+ }
164
+ }
153
165
  const comma = index < props.length - 1 ? ',' : '';
154
- objContent += `\n${indent}'${key}': ${mockValue}${comma}`;
166
+ // 添加字段说明作为行内注释
167
+ let comment = '';
168
+ const fieldDesc = propSchema.title || propSchema.description || '';
169
+ // 处理枚举类型,展示枚举选项
170
+ if (propSchema['x-apifox-enum'] && Array.isArray(propSchema['x-apifox-enum'])) {
171
+ const enumItems = propSchema['x-apifox-enum']
172
+ .map((item) => `${item.value}:${item.name}`)
173
+ .join(', ');
174
+ if (enumItems) {
175
+ // 如果有字段说明,格式为:// 字段说明 枚举选项
176
+ comment = fieldDesc ? ` // ${fieldDesc} ${enumItems}` : ` // ${enumItems}`;
177
+ }
178
+ else if (fieldDesc) {
179
+ comment = ` // ${fieldDesc}`;
180
+ }
181
+ }
182
+ else if (fieldDesc) {
183
+ comment = ` // ${fieldDesc}`;
184
+ }
185
+ // 强制所有键名都使用双引号包裹,保持一致性
186
+ const fieldKey = propSchema.type === 'array' ? `"${key}|0-11"` : `"${key}"`;
187
+ objContent += `\n${indent}${fieldKey}: ${mockValue}${comma}${comment}`;
155
188
  });
156
189
  objContent += `\n${indent.slice(0, -1)}}`; // 减少一级缩进
190
+ // 如果同时存在 code 和 msg 字段,需要包装一个函数来生成共享的随机数
191
+ if (needsSharedRandom) {
192
+ const apiInfo = interfaceInfo || '接口';
193
+ return `(() => {
194
+ const randomCode = Math.random() < 0.5 ? 1 : 0;
195
+ return ${objContent};
196
+ })()`;
197
+ }
157
198
  return objContent;
158
199
  case 'array':
159
- const itemTemplate = generateMockTemplateForResponse(schema.items, definitions, indent + '\t');
200
+ const itemTemplate = generateMockTemplateForResponse(schema.items, definitions, indent + '\t', interfaceInfo);
160
201
  return `[${itemTemplate}]`;
161
202
  default:
162
- return generateMockValueForField('', schema, definitions);
203
+ return generateMockValueForField('', schema, definitions, interfaceInfo);
163
204
  }
164
205
  }
165
206
  /**
166
- * 为单个字段生成 Mock
207
+ * 为单个字段生成 Mock 值(直接使用 Apifox mock 规则)
167
208
  */
168
- function generateMockValueForField(fieldName, schema, definitions) {
209
+ function generateMockValueForField(fieldName, schema, definitions, interfaceInfo) {
169
210
  if (!schema)
170
211
  return 'null';
171
212
  // 处理引用
172
213
  if (schema.$ref) {
173
214
  const refName = schema.$ref.split('/').pop();
174
215
  if (definitions?.[refName]) {
175
- return generateMockValueForField(fieldName, definitions[refName], definitions);
216
+ return generateMockValueForField(fieldName, definitions[refName], definitions, interfaceInfo);
176
217
  }
177
218
  }
219
+ // 特殊处理 code 字段,生成随机 0 或 1
220
+ if (fieldName === 'code' && (schema.type === 'integer' || schema.type === 'number')) {
221
+ return 'Math.random() < 0.5 ? 1 : 0';
222
+ }
223
+ // 特殊处理 msg 字段,根据 code 值生成相应消息
224
+ if (fieldName === 'msg' && schema.type === 'string') {
225
+ const apiInfo = interfaceInfo || '接口';
226
+ return `Math.random() < 0.5 ? "接口调用失败:${apiInfo}" : "接口调用成功"`;
227
+ }
228
+ // 使用 Apifox 的 mock 规则
229
+ const apifoxMockValue = extractApifoxMockRule(schema);
230
+ if (apifoxMockValue) {
231
+ return wrapMockTemplate(apifoxMockValue);
232
+ }
233
+ // 如果没有 Apifox 规则,使用基本的默认值
178
234
  switch (schema.type) {
179
235
  case 'string':
180
- return inferStringMockValue(schema, fieldName);
236
+ // 优先使用示例值
237
+ if (schema.example !== undefined) {
238
+ return `"${schema.example}"`;
239
+ }
240
+ // 使用枚举值
241
+ if (schema.enum && schema.enum.length > 0) {
242
+ const enumValues = schema.enum.map((v) => `"${v}"`).join(', ');
243
+ return wrapMockTemplate(`@pick([${enumValues}])`);
244
+ }
245
+ return wrapMockTemplate('@cword(3, 8)');
181
246
  case 'number':
182
247
  case 'integer':
183
- return inferNumberMockValue(schema, fieldName);
248
+ // 优先使用示例值
249
+ if (schema.example !== undefined) {
250
+ return schema.example.toString();
251
+ }
252
+ // 使用枚举值
253
+ if (schema.enum && schema.enum.length > 0) {
254
+ const enumValues = schema.enum.join(', ');
255
+ return wrapMockTemplate(`@pick([${enumValues}])`);
256
+ }
257
+ // 使用范围
258
+ const min = schema.minimum ?? 0;
259
+ const max = schema.maximum ?? 100;
260
+ if (schema.type === 'integer') {
261
+ return wrapMockTemplate(`@integer(${min}, ${max})`);
262
+ }
263
+ else {
264
+ return wrapMockTemplate(`@float(${min}, ${max}, 2, 2)`);
265
+ }
184
266
  case 'boolean':
185
- // 使用 Math.random() < 0.5 生成随机布尔值
186
- return 'Boolean(Math.random() < 0.5)';
267
+ // 优先使用示例值
268
+ if (schema.example !== undefined) {
269
+ return schema.example.toString();
270
+ }
271
+ return wrapMockTemplate('@boolean');
187
272
  case 'array':
188
- return `[${generateMockValueForField('', schema.items, definitions)}]`;
273
+ const itemTemplate = generateMockTemplateForResponse(schema.items, definitions);
274
+ return `[${itemTemplate}]`;
189
275
  case 'object':
190
276
  return generateMockTemplateForResponse(schema, definitions);
191
277
  default:
@@ -193,91 +279,98 @@ function generateMockValueForField(fieldName, schema, definitions) {
193
279
  }
194
280
  }
195
281
  /**
196
- * 推断字符串类型的 Mock
282
+ * 提取 Apifox 的 mock 规则
283
+ * Apifox 的 mock 规则存储在 x-apifox-mock 字段中
197
284
  */
198
- function inferStringMockValue(schema, fieldName) {
199
- // 1. 枚举值
200
- if (schema.enum)
201
- return `"${schema.enum[0]}"`;
202
- // 2. 格式
203
- if (schema.format === 'date-time')
204
- return '"@datetime"';
205
- if (schema.format === 'date')
206
- return '"@date"';
207
- if (schema.format === 'email')
208
- return '"@email"';
209
- if (schema.format === 'url')
210
- return '"@url"';
211
- // 3. 根据字段名推断
212
- const name = (fieldName || '').toLowerCase();
213
- if (name.includes('code'))
214
- return 'String(Math.random() < 1)'; // 状态码通常是字符串 "0" 或 "1"
215
- if (name.includes('msg') || name.includes('message')) {
216
- // 计算合适的字数范围
217
- const minWords = 0;
218
- const maxWords = 11;
219
- return `'@cword(${minWords}, ${maxWords})'`;
285
+ function extractApifoxMockRule(schema) {
286
+ if (!schema)
287
+ return null;
288
+ // 检查是否有 Apifox 的 mock 规则(存储在 x-apifox-mock 字段)
289
+ const apifoxMock = schema['x-apifox-mock'];
290
+ if (!apifoxMock) {
291
+ return null;
292
+ }
293
+ let mockRule = null;
294
+ // x-apifox-mock 可能是字符串或对象
295
+ if (typeof apifoxMock === 'string') {
296
+ mockRule = apifoxMock;
297
+ }
298
+ else if (typeof apifoxMock === 'object' && apifoxMock.mock) {
299
+ mockRule = apifoxMock.mock;
300
+ }
301
+ if (!mockRule) {
302
+ return null;
303
+ }
304
+ // 转换 Apifox 模板语法为 Mock.js 语法
305
+ const convertedRule = convertApifoxTemplateToMockJs(mockRule);
306
+ return convertedRule;
307
+ }
308
+ /**
309
+ * 转换 Apifox 模板语法为 Mock.js 语法
310
+ * Apifox 使用 {{...}} 语法,需要转换为 Mock.js 的 @xxx 语法
311
+ */
312
+ function convertApifoxTemplateToMockJs(template) {
313
+ // 如果已经是 Mock.js 语法(以 @ 开头),直接返回
314
+ if (template.startsWith('@') || template.startsWith('/')) {
315
+ return template;
220
316
  }
221
- if (name.includes('token'))
222
- return '"@guid"';
223
- if (name.includes('id') || name.includes('_id'))
224
- return '"@guid"';
225
- if (name.includes('email'))
226
- return '"@email"';
227
- if (name.includes('phone') || name.includes('mobile') || name.includes('tel'))
228
- return '"/^1[3-9]\\\\d{9}$/"';
229
- if (name.includes('name') && !name.includes('file'))
230
- return '"@cname"';
231
- if (name.includes('username'))
232
- return '"@name"';
233
- if (name.includes('address'))
234
- return '"@county(true)"';
235
- if (name.includes('city'))
236
- return '"@city"';
237
- if (name.includes('province'))
238
- return '"@province"';
239
- if (name.includes('url') || name.includes('link') || name.includes('href'))
240
- return '"@url"';
241
- if (name.includes('avatar') || name.includes('image') || name.includes('img') || name.includes('pic'))
242
- return '"@image(\\"200x200\\")"';
243
- if (name.includes('title'))
244
- return '"@ctitle(5, 15)"';
245
- if (name.includes('content') || name.includes('desc') || name.includes('description'))
246
- return '"@cparagraph(1, 3)"';
247
- // 4. 示例值
248
- if (schema.example)
249
- return `"${schema.example}"`;
250
- // 5. 默认规则
251
- return '"@string(5, 10)"';
317
+ // 如果是 Apifox 的模板语法 {{...}},尝试转换
318
+ if (template.includes('{{') && template.includes('}}')) {
319
+ // Apifox 常见模板映射到 Mock.js
320
+ const mappings = {
321
+ '{{$string.uuid}}': '@guid',
322
+ '{{$person.fullName}}': '@cname',
323
+ "{{$person.fullName(locale='zh_CN')}}": '@cname',
324
+ "{{$person.fullName(locale='en_US')}}": '@name',
325
+ '{{$person.firstName}}': '@cfirst',
326
+ '{{$person.lastName}}': '@clast',
327
+ '{{$internet.email}}': '@email',
328
+ '{{$internet.url}}': '@url',
329
+ '{{$internet.ip}}': '@ip',
330
+ '{{$phone.number}}': '/^1[3-9]\\d{9}$/',
331
+ '{{$address.city}}': '@city',
332
+ '{{$address.province}}': '@province',
333
+ '{{$address.county}}': '@county',
334
+ '{{$date.now}}': '@now',
335
+ '{{$date.recent}}': '@datetime',
336
+ '{{$image.image}}': '@image',
337
+ '{{$string.sample}}': '@cword(3, 8)',
338
+ '{{$number.int}}': '@integer(0, 100)',
339
+ '{{$number.float}}': '@float(0, 100, 2, 2)',
340
+ '{{$boolean}}': '@boolean'
341
+ };
342
+ // 尝试精确匹配
343
+ if (mappings[template]) {
344
+ return mappings[template];
345
+ }
346
+ // 尝试模糊匹配常见模式
347
+ for (const [pattern, replacement] of Object.entries(mappings)) {
348
+ if (template.includes(pattern.replace('{{', '').replace('}}', ''))) {
349
+ return replacement;
350
+ }
351
+ }
352
+ // 如果无法转换,返回空字符串(使用回退策略)
353
+ return '';
354
+ }
355
+ return template;
252
356
  }
253
357
  /**
254
- * 推断数字类型的 Mock
358
+ * 包装 Mock.js 模板,确保正确的引号格式
359
+ * Mock.js 占位符(@xxx)需要用单引号包裹
255
360
  */
256
- function inferNumberMockValue(schema, fieldName) {
257
- // 1. 如果有范围,使用范围
258
- if (schema.minimum !== undefined && schema.maximum !== undefined) {
259
- return `Number(Math.random() * ${schema.maximum - schema.minimum} + ${schema.minimum})`;
361
+ function wrapMockTemplate(template) {
362
+ // 如果已经是用引号包裹的字符串,直接返回(使用单引号)
363
+ if (template.startsWith('"') && template.endsWith('"')) {
364
+ return "'" + template.slice(1, -1) + "'";
365
+ }
366
+ if (template.startsWith("'") && template.endsWith("'")) {
367
+ return template;
260
368
  }
261
- // 2. 根据字段名推断
262
- const name = (fieldName || '').toLowerCase();
263
- if (name.includes('code') || name.includes('status')) {
264
- // code 字段通常 0 表示成功
265
- return 'Number(Math.random() < 0)'; // 永远返回 0
369
+ // 如果是 Mock.js 占位符(以@开头)或正则表达式(以/开头),用单引号包裹
370
+ if (template.startsWith('@') || template.startsWith('/')) {
371
+ return `'${template}'`;
266
372
  }
267
- if (name.includes('age'))
268
- return 'Number(Math.random() * 42 + 18)';
269
- if (name.includes('price') || name.includes('amount') || name.includes('money'))
270
- return 'Number((Math.random() * 10000).toFixed(2))';
271
- if (name.includes('count') || name.includes('num') || name.includes('total'))
272
- return 'Math.floor(Math.random() * 1000)';
273
- if (name.includes('page'))
274
- return 'Math.floor(Math.random() * 100) + 1';
275
- if (name.includes('size') || name.includes('limit'))
276
- return 'Math.floor(Math.random() * 90) + 10';
277
- // 3. 示例值
278
- if (schema.example !== undefined)
279
- return schema.example.toString();
280
- // 4. 默认规则
281
- return 'Math.floor(Math.random() * 100)';
373
+ // 其他情况(数字、布尔值、函数调用等)直接返回
374
+ return template;
282
375
  }
283
376
  //# sourceMappingURL=mock-template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-template.js","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-template.js","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Apifox 智能 Mock 规则引擎
3
+ * 根据字段名称、类型、格式等信息,智能推断合适的 Mock 数据
4
+ */
5
+ /**
6
+ * 字段识别规则配置
7
+ */
8
+ interface FieldPattern {
9
+ /** 字段名模式(支持正则) */
10
+ patterns: string[];
11
+ /** Mock.js 模板 */
12
+ mockTemplate: string;
13
+ /** 优先级(数字越大优先级越高) */
14
+ priority: number;
15
+ /** 描述 */
16
+ description: string;
17
+ }
18
+ /**
19
+ * 智能匹配字段名,返回对应的 Mock 模板
20
+ */
21
+ export declare function matchFieldPattern(fieldName: string, fieldType: 'string' | 'number' | 'integer', rules: FieldPattern[]): string | null;
22
+ /**
23
+ * 为字符串字段生成智能 Mock 值
24
+ */
25
+ export declare function generateSmartStringMock(schema: any, fieldName?: string): string;
26
+ /**
27
+ * 为数字字段生成智能 Mock 值
28
+ */
29
+ export declare function generateSmartNumberMock(schema: any, fieldName?: string): string;
30
+ /**
31
+ * 为布尔字段生成智能 Mock 值
32
+ */
33
+ export declare function generateSmartBooleanMock(schema: any, fieldName?: string): string;
34
+ /**
35
+ * 生成数组的智能 Mock
36
+ */
37
+ export declare function generateSmartArrayMock(itemMock: string, schema?: any): string;
38
+ /**
39
+ * 检测字段是否为时间戳类型
40
+ */
41
+ export declare function isTimestampField(fieldName: string, schema: any): boolean;
42
+ /**
43
+ * 生成时间戳的 Mock 值
44
+ */
45
+ export declare function generateTimestampMock(): string;
46
+ export {};
47
+ //# sourceMappingURL=smart-mock-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-mock-rules.d.ts","sourceRoot":"","sources":["../../../../src/generators/templates/smart-mock-rules.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,UAAU,YAAY;IACpB,kBAAkB;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS;IACT,WAAW,EAAE,MAAM,CAAA;CACpB;AAkeD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAC1C,KAAK,EAAE,YAAY,EAAE,GACpB,MAAM,GAAG,IAAI,CA4Bf;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAoD/E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAwC/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBhF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,MAAM,CAW7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAqBxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAG9C"}