m8-mcp-server 1.0.13 → 1.0.14
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/dist/docs/apis.d.ts.map +1 -1
- package/dist/docs/apis.js +3 -3
- package/dist/generator/api-validator.d.ts +121 -0
- package/dist/generator/api-validator.d.ts.map +1 -0
- package/dist/generator/api-validator.js +2 -0
- package/dist/generator/header.d.ts +2 -1
- package/dist/generator/header.d.ts.map +1 -1
- package/dist/generator/header.js +3 -3
- package/dist/generator/index.d.ts +1 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +1 -1
- package/dist/recommend/index.d.ts.map +1 -1
- package/dist/recommend/index.js +5 -2
- package/dist/tools/generate-code.d.ts.map +1 -1
- package/dist/tools/generate-code.js +12 -6
- package/package.json +1 -1
package/dist/docs/apis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../src/docs/apis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"apis.d.ts","sourceRoot":"","sources":["../../src/docs/apis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA0OpE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMzF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAwEtE;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMjD"}
|
package/dist/docs/apis.js
CHANGED
|
@@ -4,6 +4,6 @@ const o=[{module:"ui",description:"UI \u4EA4\u4E92\u76F8\u5173 API\uFF0C\u5305\u
|
|
|
4
4
|
success: (result) => {
|
|
5
5
|
console.log('\u8FD4\u56DE\u6570\u636E:', result.resultData);
|
|
6
6
|
}
|
|
7
|
-
});`}]},{name:"close",description:"\u5173\u95ED\u5F53\u524D\u9875\u9762",parameters:[{name:"resultData",type:"object",required:!1,description:"\u8FD4\u56DE\u7ED9\u4E0A\u4E00\u9875\u7684\u6570\u636E"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5173\u95ED\u9875\u9762",code:"ejs.page.close({ resultData: { status: 'success' } });"}]},{name:"setTitle",description:"\u8BBE\u7F6E\u9875\u9762\u6807\u9898",parameters:[{name:"title",type:"string",required:!0,description:"\u9875\u9762\u6807\u9898"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u8BBE\u7F6E\u6807\u9898",code:"ejs.page.setTitle({ title: '\u65B0\u6807\u9898' });"}]}]},{module:"storage",description:"\u672C\u5730\u5B58\u50A8\u76F8\u5173 API",methods:[{name:"setItem",description:"\u5B58\u50A8\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"},{name:"value",type:"string",required:!0,description:"\u503C"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5B58\u50A8\u6570\u636E",code:"ejs.storage.setItem({ key: 'token', value: 'xxx' });"}]},{name:"getItem",description:"\u83B7\u53D6\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"}],returnValue:{type:"Promise<string>",description:"\u5B58\u50A8\u7684\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u83B7\u53D6\u6570\u636E",code:"const token = await ejs.storage.getItem({ key: 'token' });"}]},{name:"removeItem",description:"\u5220\u9664\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5220\u9664\u6570\u636E",code:"ejs.storage.removeItem({ key: 'token' });"}]}]},{module:"
|
|
8
|
-
\u53EF\u7528\u65B9\u6CD5: ${r.methods.map(
|
|
9
|
-
`)}function d(){const r=new Map;for(const
|
|
7
|
+
});`}]},{name:"close",description:"\u5173\u95ED\u5F53\u524D\u9875\u9762",parameters:[{name:"resultData",type:"object",required:!1,description:"\u8FD4\u56DE\u7ED9\u4E0A\u4E00\u9875\u7684\u6570\u636E"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5173\u95ED\u9875\u9762",code:"ejs.page.close({ resultData: { status: 'success' } });"}]},{name:"setTitle",description:"\u8BBE\u7F6E\u9875\u9762\u6807\u9898",parameters:[{name:"title",type:"string",required:!0,description:"\u9875\u9762\u6807\u9898"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u8BBE\u7F6E\u6807\u9898",code:"ejs.page.setTitle({ title: '\u65B0\u6807\u9898' });"}]}]},{module:"storage",description:"\u672C\u5730\u5B58\u50A8\u76F8\u5173 API",methods:[{name:"setItem",description:"\u5B58\u50A8\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"},{name:"value",type:"string",required:!0,description:"\u503C"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5B58\u50A8\u6570\u636E",code:"ejs.storage.setItem({ key: 'token', value: 'xxx' });"}]},{name:"getItem",description:"\u83B7\u53D6\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"}],returnValue:{type:"Promise<string>",description:"\u5B58\u50A8\u7684\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u83B7\u53D6\u6570\u636E",code:"const token = await ejs.storage.getItem({ key: 'token' });"}]},{name:"removeItem",description:"\u5220\u9664\u6570\u636E",parameters:[{name:"key",type:"string",required:!0,description:"\u952E\u540D"}],returnValue:{type:"void",description:"\u65E0\u8FD4\u56DE\u503C"},platformSupport:{ios:!0,android:!0,h5:!0},examples:[{title:"\u5220\u9664\u6570\u636E",code:"ejs.storage.removeItem({ key: 'token' });"}]}]},{module:"platform",description:"\u26A0\uFE0F \u5E73\u53F0\u7279\u5B9A\u529F\u80FD\u8BF4\u660E\uFF1A\u62CD\u7167\u3001\u626B\u7801\u3001\u5B9A\u4F4D\u7B49\u8BBE\u5907\u76F8\u5173\u529F\u80FD\u9700\u8981\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API",methods:[{name:"takePhoto",description:"\u62CD\u7167\u529F\u80FD - \u9700\u6839\u636E\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API",parameters:[],returnValue:{type:"\u5E73\u53F0\u76F8\u5173",description:"\u6839\u636E\u5E73\u53F0\u8FD4\u56DE\u4E0D\u540C\u683C\u5F0F"},platformSupport:{ios:!1,android:!1,h5:!1},examples:[{title:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",code:"wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['camera'], success: (res) => { const path = res.tempFiles[0].tempFilePath; } });"},{title:"\u5FAE\u4FE1\u516C\u4F17\u53F7 H5",code:"wx.chooseImage({ count: 1, sourceType: ['camera'], success: (res) => { const localIds = res.localIds; } });"}]},{name:"scanCode",description:"\u626B\u7801\u529F\u80FD - \u9700\u6839\u636E\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API",parameters:[],returnValue:{type:"\u5E73\u53F0\u76F8\u5173",description:"\u6839\u636E\u5E73\u53F0\u8FD4\u56DE\u4E0D\u540C\u683C\u5F0F"},platformSupport:{ios:!1,android:!1,h5:!1},examples:[{title:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",code:"wx.scanCode({ onlyFromCamera: true, success: (res) => { const result = res.result; } });"},{title:"\u5FAE\u4FE1\u516C\u4F17\u53F7 H5",code:"wx.scanQRCode({ needResult: 1, success: (res) => { const result = res.resultStr; } });"}]},{name:"getLocation",description:"\u5B9A\u4F4D\u529F\u80FD - \u9700\u6839\u636E\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API",parameters:[],returnValue:{type:"\u5E73\u53F0\u76F8\u5173",description:"\u6839\u636E\u5E73\u53F0\u8FD4\u56DE\u4E0D\u540C\u683C\u5F0F"},platformSupport:{ios:!1,android:!1,h5:!1},examples:[{title:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F",code:"wx.getLocation({ type: 'gcj02', success: (res) => { const { latitude, longitude } = res; } });"},{title:"\u5FAE\u4FE1\u516C\u4F17\u53F7 H5",code:"wx.getLocation({ type: 'gcj02', success: (res) => { const { latitude, longitude } = res; } });"}]}]}];function p(r){const i=r.toLowerCase().trim();return o.find(e=>e.module.toLowerCase()===i)||null}function n(r,i){const e=p(r);if(!e)return null;const t=i.toLowerCase().trim();return e.methods.find(s=>s.name.toLowerCase()===t)||null}function a(){return o.map(r=>r.module)}function u(r,i){const e=[];if(i){const t=r.methods.find(s=>s.name.toLowerCase()===i.toLowerCase());if(!t)return`\u65B9\u6CD5 ${i} \u4E0D\u5B58\u5728\u4E8E ejs.${r.module} \u6A21\u5757\u4E2D\u3002
|
|
8
|
+
\u53EF\u7528\u65B9\u6CD5: ${r.methods.map(s=>s.name).join(", ")}`;if(e.push(`# ejs.${r.module}.${t.name}`),e.push(""),e.push(t.description),e.push(""),t.parameters.length>0){e.push("## \u53C2\u6570"),e.push(""),e.push("| \u53C2\u6570 | \u7C7B\u578B | \u5FC5\u586B | \u8BF4\u660E |"),e.push("| --- | --- | --- | --- |");for(const s of t.parameters)e.push(`| ${s.name} | ${s.type} | ${s.required?"\u662F":"\u5426"} | ${s.description} |`);e.push("")}if(e.push("## \u8FD4\u56DE\u503C"),e.push(""),e.push(`- \u7C7B\u578B: \`${t.returnValue.type}\``),e.push(`- \u8BF4\u660E: ${t.returnValue.description}`),e.push(""),e.push("## \u5E73\u53F0\u652F\u6301"),e.push(""),e.push(`- iOS: ${t.platformSupport.ios?"\u2713":"\u2717"}`),e.push(`- Android: ${t.platformSupport.android?"\u2713":"\u2717"}`),e.push(`- H5: ${t.platformSupport.h5?"\u2713":"\u2717"}`),e.push(""),t.examples.length>0){e.push("## \u793A\u4F8B"),e.push("");for(const s of t.examples)e.push(`### ${s.title}`),e.push("```javascript"),e.push(s.code),e.push("```"),e.push("")}}else{e.push(`# ejs.${r.module}`),e.push(""),e.push(r.description),e.push(""),e.push("## \u65B9\u6CD5\u5217\u8868"),e.push(""),e.push("| \u65B9\u6CD5 | \u8BF4\u660E |"),e.push("| --- | --- |");for(const t of r.methods)e.push(`| ${t.name} | ${t.description} |`);e.push(""),e.push("\u4F7F\u7528 `get_api_info` \u5DE5\u5177\u5E76\u6307\u5B9A `method` \u53C2\u6570\u53EF\u83B7\u53D6\u5177\u4F53\u65B9\u6CD5\u7684\u8BE6\u7EC6\u4FE1\u606F\u3002")}return e.join(`
|
|
9
|
+
`)}function d(){const r=new Map;for(const i of o)r.set(i.module,i);return r}export{u as formatApiInfo,p as getApiInfo,n as getApiMethodInfo,a as getAvailableModules,d as loadEjsApis};
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 平台类型
|
|
3
|
+
*/
|
|
4
|
+
export type PlatformType = 'wechat-miniprogram' | 'wechat-h5' | 'h5' | 'm8-app' | 'unknown';
|
|
5
|
+
/**
|
|
6
|
+
* EJS API 白名单(M8 框架通用 API)
|
|
7
|
+
* ⚠️ 注意:设备相关功能(拍照、定位、扫码等)需要根据目标平台使用对应的官方 API
|
|
8
|
+
* - 微信小程序:使用 wx.* API
|
|
9
|
+
* - 微信公众号/H5:使用微信 JSSDK
|
|
10
|
+
* - 原生 App:使用 ejs.device.* API
|
|
11
|
+
*/
|
|
12
|
+
export declare const EJS_API_WHITELIST: {
|
|
13
|
+
readonly ui: {
|
|
14
|
+
readonly methods: readonly ["toast", "alert", "confirm", "showWaiting", "closeWaiting", "picker", "pickDate", "pickTime"];
|
|
15
|
+
readonly description: "UI 交互相关 API(通用)";
|
|
16
|
+
};
|
|
17
|
+
readonly page: {
|
|
18
|
+
readonly methods: readonly ["open", "close", "setTitle"];
|
|
19
|
+
readonly description: "页面导航相关 API(通用)";
|
|
20
|
+
};
|
|
21
|
+
readonly storage: {
|
|
22
|
+
readonly methods: readonly ["setItem", "getItem", "removeItem"];
|
|
23
|
+
readonly description: "本地存储相关 API(通用)";
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* 平台特定 API 参考
|
|
28
|
+
* 这些不是 M8 框架的 API,而是各平台原生 API 的参考
|
|
29
|
+
*/
|
|
30
|
+
export declare const PLATFORM_SPECIFIC_APIS: {
|
|
31
|
+
'wechat-miniprogram': {
|
|
32
|
+
description: string;
|
|
33
|
+
docUrl: string;
|
|
34
|
+
apis: {
|
|
35
|
+
takePhoto: string;
|
|
36
|
+
chooseImage: string;
|
|
37
|
+
getLocation: string;
|
|
38
|
+
scanCode: string;
|
|
39
|
+
navigateTo: string;
|
|
40
|
+
request: string;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
'wechat-h5': {
|
|
44
|
+
description: string;
|
|
45
|
+
docUrl: string;
|
|
46
|
+
apis: {
|
|
47
|
+
takePhoto: string;
|
|
48
|
+
chooseImage: string;
|
|
49
|
+
getLocation: string;
|
|
50
|
+
scanQRCode: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
h5: {
|
|
54
|
+
description: string;
|
|
55
|
+
apis: {
|
|
56
|
+
takePhoto: string;
|
|
57
|
+
chooseImage: string;
|
|
58
|
+
getLocation: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* 禁止使用的 API(常见错误)
|
|
64
|
+
* 这些是 AI 常常臆想的不存在的方法
|
|
65
|
+
*/
|
|
66
|
+
export declare const FORBIDDEN_APIS: string[];
|
|
67
|
+
/**
|
|
68
|
+
* API 替换建议
|
|
69
|
+
* 将错误的 API 映射到正确的 API
|
|
70
|
+
*/
|
|
71
|
+
export declare const API_CORRECTIONS: Record<string, {
|
|
72
|
+
correct: string;
|
|
73
|
+
example: string;
|
|
74
|
+
platformNote?: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* 验证 API 调用是否有效
|
|
78
|
+
* @param apiCall API 调用字符串,如 "ejs.ui.toast"
|
|
79
|
+
* @returns 验证结果
|
|
80
|
+
*/
|
|
81
|
+
export declare function validateApiCall(apiCall: string): {
|
|
82
|
+
valid: boolean;
|
|
83
|
+
suggestion?: string;
|
|
84
|
+
example?: string;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* 检查代码中是否使用了禁止的 API
|
|
88
|
+
* @param code 代码字符串
|
|
89
|
+
* @returns 发现的问题列表
|
|
90
|
+
*/
|
|
91
|
+
export declare function checkCodeForForbiddenApis(code: string): Array<{
|
|
92
|
+
forbidden: string;
|
|
93
|
+
suggestion: string;
|
|
94
|
+
example?: string;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* 获取所有可用的 EJS API 列表
|
|
98
|
+
* @returns API 列表
|
|
99
|
+
*/
|
|
100
|
+
export declare function getAvailableEjsApis(): Array<{
|
|
101
|
+
module: string;
|
|
102
|
+
method: string;
|
|
103
|
+
fullName: string;
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* 获取平台特定功能的 API 建议
|
|
107
|
+
* @param platform 目标平台
|
|
108
|
+
* @param feature 功能名称(如 takePhoto, getLocation, scanCode)
|
|
109
|
+
* @returns API 使用建议
|
|
110
|
+
*/
|
|
111
|
+
export declare function getPlatformApiSuggestion(platform: PlatformType, feature: 'takePhoto' | 'chooseImage' | 'getLocation' | 'scanCode' | 'scanQRCode'): {
|
|
112
|
+
api: string;
|
|
113
|
+
docUrl?: string;
|
|
114
|
+
} | null;
|
|
115
|
+
/**
|
|
116
|
+
* 生成平台特定功能的代码提示
|
|
117
|
+
* @param feature 功能名称
|
|
118
|
+
* @returns 各平台的代码示例
|
|
119
|
+
*/
|
|
120
|
+
export declare function getPlatformApiExamples(feature: string): string;
|
|
121
|
+
//# sourceMappingURL=api-validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-validator.d.ts","sourceRoot":"","sources":["../../src/generator/api-validator.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,WAAW,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5F;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAcpB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,UAsB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAqDvG,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CA8CA;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC,CAeD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC,CAcD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACpC,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,GAAG,YAAY,GACjF;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBzC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4D9D"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const r={ui:{methods:["toast","alert","confirm","showWaiting","closeWaiting","picker","pickDate","pickTime"],description:"UI \u4EA4\u4E92\u76F8\u5173 API\uFF08\u901A\u7528\uFF09"},page:{methods:["open","close","setTitle"],description:"\u9875\u9762\u5BFC\u822A\u76F8\u5173 API\uFF08\u901A\u7528\uFF09"},storage:{methods:["setItem","getItem","removeItem"],description:"\u672C\u5730\u5B58\u50A8\u76F8\u5173 API\uFF08\u901A\u7528\uFF09"}},l={"wechat-miniprogram":{description:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u5E73\u53F0",docUrl:"https://developers.weixin.qq.com/miniprogram/dev/api/",apis:{takePhoto:'wx.chooseMedia({ count: 1, mediaType: ["image"], sourceType: ["camera"] })',chooseImage:'wx.chooseMedia({ count: 9, mediaType: ["image"], sourceType: ["album", "camera"] })',getLocation:'wx.getLocation({ type: "gcj02" })',scanCode:"wx.scanCode({ onlyFromCamera: true })",navigateTo:'wx.navigateTo({ url: "/pages/xxx/xxx" })',request:"\u8BF7\u4F7F\u7528 Util.ajax\uFF0C\u6846\u67B6\u4F1A\u81EA\u52A8\u9002\u914D"}},"wechat-h5":{description:"\u5FAE\u4FE1\u516C\u4F17\u53F7/H5 \u5E73\u53F0",docUrl:"https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html",apis:{takePhoto:'wx.chooseImage({ count: 1, sourceType: ["camera"] })',chooseImage:'wx.chooseImage({ count: 9, sourceType: ["album", "camera"] })',getLocation:'wx.getLocation({ type: "gcj02" })',scanQRCode:"wx.scanQRCode({ needResult: 1 })"}},h5:{description:"\u666E\u901A H5 \u5E73\u53F0",apis:{takePhoto:'\u4F7F\u7528 <input type="file" accept="image/*" capture="camera">',chooseImage:'\u4F7F\u7528 <input type="file" accept="image/*" multiple>',getLocation:"\u4F7F\u7528 navigator.geolocation.getCurrentPosition()"}}},p=["ejs.nav.push","ejs.nav.pop","ejs.nav.back","ejs.navigate","ejs.navigateTo","ejs.redirectTo","ejs.device.camera","ejs.device.takePhoto","ejs.device.scan","ejs.device.getLocation","ejs.camera","ejs.takePhoto","ejs.showToast","ejs.showLoading","ejs.hideLoading","ejs.showModal","ejs.request","ejs.http","ejs.fetch","fetch(","axios."],u={"ejs.nav.push":{correct:"ejs.page.open",example:"ejs.page.open({ pageUrl: './detail', data: { id: '123' } });"},"ejs.nav.pop":{correct:"ejs.page.close",example:"ejs.page.close({ resultData: { status: 'success' } });"},"ejs.navigate":{correct:"ejs.page.open",example:"ejs.page.open({ pageUrl: './detail', data: { id: '123' } });"},"ejs.device.camera":{correct:"\u5E73\u53F0\u7279\u5B9A API",example:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F: wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['camera'] })",platformNote:"\u62CD\u7167\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API"},"ejs.device.takePhoto":{correct:"\u5E73\u53F0\u7279\u5B9A API",example:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F: wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['camera'] })",platformNote:"\u62CD\u7167\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API"},"ejs.device.scan":{correct:"\u5E73\u53F0\u7279\u5B9A API",example:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F: wx.scanCode({ onlyFromCamera: true })",platformNote:"\u626B\u7801\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API"},"ejs.device.getLocation":{correct:"\u5E73\u53F0\u7279\u5B9A API",example:"\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F: wx.getLocation({ type: 'gcj02' })",platformNote:"\u5B9A\u4F4D\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API"},"ejs.showToast":{correct:"ejs.ui.toast",example:"ejs.ui.toast({ message: '\u64CD\u4F5C\u6210\u529F' });"},"ejs.showLoading":{correct:"ejs.ui.showWaiting",example:"ejs.ui.showWaiting({ message: '\u52A0\u8F7D\u4E2D...' });"},"ejs.hideLoading":{correct:"ejs.ui.closeWaiting",example:"ejs.ui.closeWaiting();"},"fetch(":{correct:"Util.ajax",example:"const result = await Util.ajax({ url: Config.serverUrl + '/api/data', type: 'POST', data: {} });"},"axios.":{correct:"Util.ajax",example:"const result = await Util.ajax({ url: Config.serverUrl + '/api/data', type: 'POST', data: {} });"}};function m(s){for(const i of p)if(s.includes(i)){const c=u[i];return c?{valid:!1,suggestion:`\u7981\u6B62\u4F7F\u7528 "${i}"\uFF0C\u8BF7\u4F7F\u7528 "${c.correct}"`,example:c.example}:{valid:!1,suggestion:`\u7981\u6B62\u4F7F\u7528 "${i}"\uFF0C\u8FD9\u4E0D\u662F\u6709\u6548\u7684 M8 API`}}const e=s.match(/^ejs\.(\w+)\.(\w+)/);if(!e)return{valid:!0};const[,o,t]=e,a=r[o];if(!a)return{valid:!1,suggestion:`\u6A21\u5757 "ejs.${o}" \u4E0D\u5B58\u5728\uFF0C\u53EF\u7528\u6A21\u5757: ${Object.keys(r).join(", ")}`};const n=a.methods;return n.includes(t)?{valid:!0}:{valid:!1,suggestion:`\u65B9\u6CD5 "ejs.${o}.${t}" \u4E0D\u5B58\u5728\uFF0C\u53EF\u7528\u65B9\u6CD5: ${n.join(", ")}`}}function g(s){const e=[];for(const o of p)if(s.includes(o)){const t=u[o];e.push({forbidden:o,suggestion:t?`\u8BF7\u4F7F\u7528 "${t.correct}"`:"\u8FD9\u4E0D\u662F\u6709\u6548\u7684 M8 API",example:t?.example})}return e}function d(){const s=[];for(const[e,o]of Object.entries(r))for(const t of o.methods)s.push({module:e,method:t,fullName:`ejs.${e}.${t}`});return s}function h(s,e){const o=l[s];if(!o)return null;const a=o.apis[e];return a?{api:a,docUrl:"docUrl"in o?o.docUrl:void 0}:null}function x(s){const e=[`\u26A0\uFE0F "${s}" \u529F\u80FD\u9700\u8981\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94\u7684\u5B98\u65B9 API\uFF1A`,""];return(s==="takePhoto"||s==="chooseImage"||s==="camera"||s==="photo")&&(e.push("\u{1F4F1} **\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F**:"),e.push("```javascript"),e.push("wx.chooseMedia({"),e.push(" count: 1,"),e.push(" mediaType: ['image'],"),e.push(" sourceType: ['camera'], // \u6216 ['album', 'camera']"),e.push(" success: (res) => {"),e.push(" const tempFilePath = res.tempFiles[0].tempFilePath;"),e.push(" }"),e.push("});"),e.push("```"),e.push("\u{1F4D6} \u6587\u6863: https://developers.weixin.qq.com/miniprogram/dev/api/media/video/wx.chooseMedia.html"),e.push(""),e.push("\u{1F310} **\u5FAE\u4FE1\u516C\u4F17\u53F7 H5**:"),e.push("```javascript"),e.push("wx.chooseImage({"),e.push(" count: 1,"),e.push(" sourceType: ['camera'],"),e.push(" success: (res) => {"),e.push(" const localIds = res.localIds;"),e.push(" }"),e.push("});"),e.push("```"),e.push("\u{1F4D6} \u6587\u6863: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#14")),(s==="getLocation"||s==="location")&&(e.push("\u{1F4F1} **\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F**:"),e.push("```javascript"),e.push("wx.getLocation({"),e.push(" type: 'gcj02',"),e.push(" success: (res) => {"),e.push(" const { latitude, longitude } = res;"),e.push(" }"),e.push("});"),e.push("```"),e.push("\u{1F4D6} \u6587\u6863: https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html")),(s==="scanCode"||s==="scan"||s==="qrcode")&&(e.push("\u{1F4F1} **\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F**:"),e.push("```javascript"),e.push("wx.scanCode({"),e.push(" onlyFromCamera: true,"),e.push(" success: (res) => {"),e.push(" const result = res.result;"),e.push(" }"),e.push("});"),e.push("```"),e.push("\u{1F4D6} \u6587\u6863: https://developers.weixin.qq.com/miniprogram/dev/api/device/scan/wx.scanCode.html")),e.join(`
|
|
2
|
+
`)}export{u as API_CORRECTIONS,r as EJS_API_WHITELIST,p as FORBIDDEN_APIS,l as PLATFORM_SPECIFIC_APIS,g as checkCodeForForbiddenApis,d as getAvailableEjsApis,x as getPlatformApiExamples,h as getPlatformApiSuggestion,m as validateApiCall};
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { HeaderOptions } from '../types/index.js';
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* 生成文件头部注释(JS/TS/SCSS/Mock 等非 Vue 文件使用)
|
|
10
10
|
* @param options 头部选项
|
|
11
11
|
* @returns 格式化的头部注释字符串
|
|
12
12
|
*/
|
|
@@ -25,6 +25,7 @@ export declare function generateVueFileHeader(options: HeaderOptions): string;
|
|
|
25
25
|
export declare function generateScssFileHeader(options: HeaderOptions): string;
|
|
26
26
|
/**
|
|
27
27
|
* 验证头部注释是否包含所有必需字段
|
|
28
|
+
* 支持两种格式:Vue格式(@字段:)和JS格式(字段:)
|
|
28
29
|
* @param header 头部注释字符串
|
|
29
30
|
* @returns 是否包含所有必需字段
|
|
30
31
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/generator/header.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/generator/header.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAiBvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAqBjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAqBpE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CA0BtD"}
|
package/dist/generator/header.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
function i(){const
|
|
2
|
-
`)}function
|
|
3
|
-
`)}function
|
|
1
|
+
function i(){const t=new Date,n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0"),e=String(t.getHours()).padStart(2,"0"),o=String(t.getMinutes()).padStart(2,"0"),a=String(t.getSeconds()).padStart(2,"0");return`${n}-${r}-${s} ${e}:${o}:${a}`}function c(t){const{author:n="",description:r,version:s="[1.0]"}=t,e=i();return["/*",` * \u4F5C\u8005: ${n}`,` * \u521B\u5EFA\u65F6\u95F4: ${e}`,` * \u4FEE\u6539\u65F6\u95F4: ${e}`,` * \u7248\u672C: ${s}`," * \u7248\u6743: \u56FD\u6CF0\u65B0\u70B9\u8F6F\u4EF6\u80A1\u4EFD\u6709\u9650\u516C\u53F8",` * \u63CF\u8FF0: ${r}`," */"].join(`
|
|
2
|
+
`)}function u(t){const{author:n="",description:r,version:s="[1.0]"}=t,e=i();return["<!--",` * @\u4F5C\u8005: ${n}`,` * @\u521B\u5EFA\u65F6\u95F4: ${e}`,` * @\u4FEE\u6539\u65F6\u95F4: ${e}`,` * @\u7248\u672C: ${s}`," * @\u7248\u6743: \u56FD\u6CF0\u65B0\u70B9\u8F6F\u4EF6\u80A1\u4EFD\u6709\u9650\u516C\u53F8",` * @\u63CF\u8FF0: ${r}`,"-->"].join(`
|
|
3
|
+
`)}function d(t){return c(t)}function g(t){const n=["@\u4F5C\u8005:","@\u521B\u5EFA\u65F6\u95F4:","@\u4FEE\u6539\u65F6\u95F4:","@\u7248\u672C:","@\u7248\u6743:","@\u63CF\u8FF0:"],r=["\u4F5C\u8005:","\u521B\u5EFA\u65F6\u95F4:","\u4FEE\u6539\u65F6\u95F4:","\u7248\u672C:","\u7248\u6743:","\u63CF\u8FF0:"],s=n.every(o=>t.includes(o)),e=r.every(o=>t.includes(o));return s||e}export{c as generateFileHeader,d as generateScssFileHeader,u as generateVueFileHeader,g as validateHeader};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEnI,OAAO,EAAiE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3H;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA09CD;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa;IA2DrD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB;IAkJ3E;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAIlD;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAGzD;AAeD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generator/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEnI,OAAO,EAAiE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE3H;;GAEG;AACH,UAAU,oBAAoB;IAC5B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sBAAsB;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA09CD;;GAEG;AACH,qBAAa,aAAa;IACxB;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa;IA2DrD;;;;OAIG;IACH,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,sBAAsB;IAkJ3E;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAIlD;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM;CAGzD;AAeD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAGjD,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
|
package/dist/generator/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{generateFileHeader as x,generateScssFileHeader as D}from"./header.js";import{generateVueTemplate as C,filterValidComponents as j,suggestComponents as T}from"./vue-template.js";export*from"./header.js";export*from"./vue-template.js";const b={login:{suggestedComponents:["em-field","em-button"],apiEndpoints:["login","logout","check-login"],keywords:["\u767B\u5F55","login","\u767B\u9646","\u8D26\u53F7","\u5BC6\u7801"]},form:{suggestedComponents:["em-form","em-field","em-button","em-picker","em-datepicker"],apiEndpoints:["submit","save","detail"],keywords:["\u8868\u5355","form","\u63D0\u4EA4","\u586B\u5199","\u7533\u8BF7","\u65B0\u589E","\u7F16\u8F91","\u4FEE\u6539"]},list:{suggestedComponents:["em-cell","em-minirefresh","em-search","em-empty"],apiEndpoints:["list","search","delete"],keywords:["\u5217\u8868","list","\u8BB0\u5F55","\u6570\u636E","\u67E5\u8BE2"]},detail:{suggestedComponents:["em-cell","em-panel","em-button","em-image"],apiEndpoints:["detail","info"],keywords:["\u8BE6\u60C5","detail","\u67E5\u770B","\u4FE1\u606F"]},message:{suggestedComponents:["em-cell","em-minirefresh","em-badge","em-empty","em-swipecell"],apiEndpoints:["list","read","delete","read-all"],keywords:["\u6D88\u606F","message","\u901A\u77E5","\u516C\u544A","\u63D0\u9192","\u7AD9\u5185\u4FE1","\u672A\u8BFB"]},search:{suggestedComponents:["em-search","em-cell","em-minirefresh","em-empty","em-tag"],apiEndpoints:["search","hot-keywords","history"],keywords:["\u641C\u7D22","search","\u67E5\u627E","\u68C0\u7D22"]},profile:{suggestedComponents:["em-cell","em-image","em-button","em-uploader"],apiEndpoints:["info","update","avatar"],keywords:["\u4E2A\u4EBA","profile","\u6211\u7684","\u7528\u6237\u4E2D\u5FC3","\u8D26\u6237"]},settings:{suggestedComponents:["em-cell","em-switch","em-switchcell","em-dialog"],apiEndpoints:["settings","update"],keywords:["\u8BBE\u7F6E","settings","\u914D\u7F6E","\u504F\u597D"]},dashboard:{suggestedComponents:["em-grid","em-cell","em-chart","em-panel"],apiEndpoints:["statistics","summary","overview"],keywords:["\u9996\u9875","\u5DE5\u4F5C\u53F0","dashboard","\u6982\u89C8","\u7EDF\u8BA1","\u9A7E\u9A76\u8231"]},generic:{suggestedComponents:["em-cell","em-button"],apiEndpoints:["data"],keywords:[]}};function h(o){const t=o.toLowerCase(),e=["login","message","search","profile","settings","dashboard","detail","list","form","generic"];let a="generic",n=0;for(const i of e){const p=b[i];let d=0;for(const u of p.keywords)t.includes(u.toLowerCase())&&(d+=u.length);d>n&&(n=d,a=i)}const{moduleName:s,title:r}=U(o,a),c=b[a];return{type:a,title:r,moduleName:s,suggestedComponents:c.suggestedComponents,apiEndpoints:c.apiEndpoints,keywords:c.keywords}}function U(o,t){const e=[/(?:创建|生成|实现|开发|做一个|帮我做)(.+?)(?:组件|页面|功能|模块)/,/(.+?)(?:页面|列表|表单|详情|管理)/,/(?:参考.+?实现)(.+?)(?:页面|功能)?/];let a="";for(const s of e){const r=o.match(s);if(r&&r[1]){if(a=r[1].trim(),a=a.replace(/截图|图片|设计稿|原型/g,"").replace(/的$/g,"").trim(),a.length>0&&a.length<=10)break;a=""}}return a||(a={login:"\u767B\u5F55",form:"\u8868\u5355",list:"\u5217\u8868",detail:"\u8BE6\u60C5",message:"\u6D88\u606F",search:"\u641C\u7D22",profile:"\u4E2A\u4EBA\u4E2D\u5FC3",settings:"\u8BBE\u7F6E",dashboard:"\u9996\u9875",generic:"\u9875\u9762"}[t]),{moduleName:S(a),title:a}}function S(o){const t={\u6D88\u606F:"message",\u901A\u77E5:"notification",\u516C\u544A:"announcement",\u767B\u5F55:"login",\u6CE8\u518C:"register",\u9996\u9875:"home",\u5217\u8868:"list",\u8BE6\u60C5:"detail",\u8868\u5355:"form",\u641C\u7D22:"search",\u8BBE\u7F6E:"settings",\u4E2A\u4EBA:"profile",\u7528\u6237:"user",\u8BA2\u5355:"order",\u5546\u54C1:"product",\u8D2D\u7269\u8F66:"cart",\u652F\u4ED8:"payment",\u5730\u5740:"address",\u6536\u85CF:"favorite",\u8BC4\u4EF7:"review",\u5BA2\u670D:"service",\u5E2E\u52A9:"help",\u5173\u4E8E:"about",\u53CD\u9988:"feedback",\u5BA1\u6279:"approval",\u7533\u8BF7:"apply",\u5F85\u529E:"todo",\u5DF2\u529E:"done",\u5DE5\u4F5C\u53F0:"workspace",\u7EDF\u8BA1:"statistics",\u62A5\u8868:"report"};if(t[o])return t[o];let e=o;for(const[a,n]of Object.entries(t))e=e.replace(new RegExp(a,"g"),`-${n}-`);return e=e.replace(/[\s_]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-").toLowerCase(),/[\u4e00-\u9fa5]/.test(e)?"my-page":e||"my-page"}function w(o){return h(o).moduleName}function I(o){return h(o).title}function H(o,t){const e={login:[{name:"login",description:"\u7528\u6237\u767B\u5F55",endpoint:"/login",params:"{ username, password }",hasDataPath:!0},{name:"logout",description:"\u9000\u51FA\u767B\u5F55",endpoint:"/logout",params:"{}",hasDataPath:!1},{name:"checkLogin",description:"\u68C0\u67E5\u767B\u5F55\u72B6\u6001",endpoint:"/check-login",params:"{}",hasDataPath:!0}],message:[{name:"getMessageList",description:"\u83B7\u53D6\u6D88\u606F\u5217\u8868",endpoint:"/list",params:"{ pageNum = 1, pageSize = 10, type }",hasDataPath:!0},{name:"getMessageDetail",description:"\u83B7\u53D6\u6D88\u606F\u8BE6\u60C5",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"markAsRead",description:"\u6807\u8BB0\u6D88\u606F\u5DF2\u8BFB",endpoint:"/read",params:"{ id }",hasDataPath:!1},{name:"markAllAsRead",description:"\u5168\u90E8\u6807\u8BB0\u5DF2\u8BFB",endpoint:"/read-all",params:"{}",hasDataPath:!1},{name:"deleteMessage",description:"\u5220\u9664\u6D88\u606F",endpoint:"/delete",params:"{ id }",hasDataPath:!1},{name:"getUnreadCount",description:"\u83B7\u53D6\u672A\u8BFB\u6570\u91CF",endpoint:"/unread-count",params:"{}",hasDataPath:!0}],list:[{name:"getList",description:"\u83B7\u53D6\u5217\u8868\u6570\u636E",endpoint:"/list",params:"{ pageNum = 1, pageSize = 10, ...filters }",hasDataPath:!0},{name:"getDetail",description:"\u83B7\u53D6\u8BE6\u60C5",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"deleteItem",description:"\u5220\u9664\u6570\u636E",endpoint:"/delete",params:"{ id }",hasDataPath:!1}],detail:[{name:"getDetail",description:"\u83B7\u53D6\u8BE6\u60C5\u6570\u636E",endpoint:"/detail",params:"{ id }",hasDataPath:!0}],form:[{name:"getDetail",description:"\u83B7\u53D6\u8868\u5355\u6570\u636E\uFF08\u7F16\u8F91\u65F6\uFF09",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"submit",description:"\u63D0\u4EA4\u8868\u5355",endpoint:"/submit",params:"formData",hasDataPath:!1},{name:"saveDraft",description:"\u4FDD\u5B58\u8349\u7A3F",endpoint:"/save-draft",params:"formData",hasDataPath:!1}],search:[{name:"search",description:"\u641C\u7D22",endpoint:"/search",params:"{ keyword, pageNum = 1, pageSize = 10 }",hasDataPath:!0},{name:"getHotKeywords",description:"\u83B7\u53D6\u70ED\u95E8\u641C\u7D22",endpoint:"/hot-keywords",params:"{}",hasDataPath:!0},{name:"getSearchHistory",description:"\u83B7\u53D6\u641C\u7D22\u5386\u53F2",endpoint:"/history",params:"{}",hasDataPath:!0},{name:"clearHistory",description:"\u6E05\u7A7A\u641C\u7D22\u5386\u53F2",endpoint:"/clear-history",params:"{}",hasDataPath:!1}],profile:[{name:"getUserInfo",description:"\u83B7\u53D6\u7528\u6237\u4FE1\u606F",endpoint:"/info",params:"{}",hasDataPath:!0},{name:"updateUserInfo",description:"\u66F4\u65B0\u7528\u6237\u4FE1\u606F",endpoint:"/update",params:"userData",hasDataPath:!1},{name:"uploadAvatar",description:"\u4E0A\u4F20\u5934\u50CF",endpoint:"/avatar",params:"{ file }",hasDataPath:!0}],settings:[{name:"getSettings",description:"\u83B7\u53D6\u8BBE\u7F6E",endpoint:"/settings",params:"{}",hasDataPath:!0},{name:"updateSettings",description:"\u66F4\u65B0\u8BBE\u7F6E",endpoint:"/update",params:"settings",hasDataPath:!1}],dashboard:[{name:"getStatistics",description:"\u83B7\u53D6\u7EDF\u8BA1\u6570\u636E",endpoint:"/statistics",params:"{}",hasDataPath:!0},{name:"getSummary",description:"\u83B7\u53D6\u6982\u89C8\u6570\u636E",endpoint:"/summary",params:"{}",hasDataPath:!0},{name:"getNotices",description:"\u83B7\u53D6\u901A\u77E5\u516C\u544A",endpoint:"/notices",params:"{ limit = 5 }",hasDataPath:!0}],generic:[{name:"getData",description:"\u83B7\u53D6\u6570\u636E",endpoint:"/data",params:"{}",hasDataPath:!0},{name:"submitData",description:"\u63D0\u4EA4\u6570\u636E",endpoint:"/submit",params:"data",hasDataPath:!1}]};return e[o]||e.generic}function _(o,t,e=!0){const a=x({description:o}),n=h(o),s=H(n.type,t),r=e?`/rest/mock/${t}`:`/api/${t}`,c=s.map(p=>{const d=p.hasDataPath?`,
|
|
1
|
+
import{generateFileHeader as x,generateScssFileHeader as D}from"./header.js";import{generateVueTemplate as C,filterValidComponents as j,suggestComponents as T}from"./vue-template.js";export*from"./header.js";export*from"./vue-template.js";export*from"./api-validator.js";const b={login:{suggestedComponents:["em-field","em-button"],apiEndpoints:["login","logout","check-login"],keywords:["\u767B\u5F55","login","\u767B\u9646","\u8D26\u53F7","\u5BC6\u7801"]},form:{suggestedComponents:["em-form","em-field","em-button","em-picker","em-datepicker"],apiEndpoints:["submit","save","detail"],keywords:["\u8868\u5355","form","\u63D0\u4EA4","\u586B\u5199","\u7533\u8BF7","\u65B0\u589E","\u7F16\u8F91","\u4FEE\u6539"]},list:{suggestedComponents:["em-cell","em-minirefresh","em-search","em-empty"],apiEndpoints:["list","search","delete"],keywords:["\u5217\u8868","list","\u8BB0\u5F55","\u6570\u636E","\u67E5\u8BE2"]},detail:{suggestedComponents:["em-cell","em-panel","em-button","em-image"],apiEndpoints:["detail","info"],keywords:["\u8BE6\u60C5","detail","\u67E5\u770B","\u4FE1\u606F"]},message:{suggestedComponents:["em-cell","em-minirefresh","em-badge","em-empty","em-swipecell"],apiEndpoints:["list","read","delete","read-all"],keywords:["\u6D88\u606F","message","\u901A\u77E5","\u516C\u544A","\u63D0\u9192","\u7AD9\u5185\u4FE1","\u672A\u8BFB"]},search:{suggestedComponents:["em-search","em-cell","em-minirefresh","em-empty","em-tag"],apiEndpoints:["search","hot-keywords","history"],keywords:["\u641C\u7D22","search","\u67E5\u627E","\u68C0\u7D22"]},profile:{suggestedComponents:["em-cell","em-image","em-button","em-uploader"],apiEndpoints:["info","update","avatar"],keywords:["\u4E2A\u4EBA","profile","\u6211\u7684","\u7528\u6237\u4E2D\u5FC3","\u8D26\u6237"]},settings:{suggestedComponents:["em-cell","em-switch","em-switchcell","em-dialog"],apiEndpoints:["settings","update"],keywords:["\u8BBE\u7F6E","settings","\u914D\u7F6E","\u504F\u597D"]},dashboard:{suggestedComponents:["em-grid","em-cell","em-chart","em-panel"],apiEndpoints:["statistics","summary","overview"],keywords:["\u9996\u9875","\u5DE5\u4F5C\u53F0","dashboard","\u6982\u89C8","\u7EDF\u8BA1","\u9A7E\u9A76\u8231"]},generic:{suggestedComponents:["em-cell","em-button"],apiEndpoints:["data"],keywords:[]}};function h(o){const t=o.toLowerCase(),e=["login","message","search","profile","settings","dashboard","detail","list","form","generic"];let a="generic",n=0;for(const i of e){const p=b[i];let d=0;for(const u of p.keywords)t.includes(u.toLowerCase())&&(d+=u.length);d>n&&(n=d,a=i)}const{moduleName:s,title:r}=U(o,a),c=b[a];return{type:a,title:r,moduleName:s,suggestedComponents:c.suggestedComponents,apiEndpoints:c.apiEndpoints,keywords:c.keywords}}function U(o,t){const e=[/(?:创建|生成|实现|开发|做一个|帮我做)(.+?)(?:组件|页面|功能|模块)/,/(.+?)(?:页面|列表|表单|详情|管理)/,/(?:参考.+?实现)(.+?)(?:页面|功能)?/];let a="";for(const s of e){const r=o.match(s);if(r&&r[1]){if(a=r[1].trim(),a=a.replace(/截图|图片|设计稿|原型/g,"").replace(/的$/g,"").trim(),a.length>0&&a.length<=10)break;a=""}}return a||(a={login:"\u767B\u5F55",form:"\u8868\u5355",list:"\u5217\u8868",detail:"\u8BE6\u60C5",message:"\u6D88\u606F",search:"\u641C\u7D22",profile:"\u4E2A\u4EBA\u4E2D\u5FC3",settings:"\u8BBE\u7F6E",dashboard:"\u9996\u9875",generic:"\u9875\u9762"}[t]),{moduleName:S(a),title:a}}function S(o){const t={\u6D88\u606F:"message",\u901A\u77E5:"notification",\u516C\u544A:"announcement",\u767B\u5F55:"login",\u6CE8\u518C:"register",\u9996\u9875:"home",\u5217\u8868:"list",\u8BE6\u60C5:"detail",\u8868\u5355:"form",\u641C\u7D22:"search",\u8BBE\u7F6E:"settings",\u4E2A\u4EBA:"profile",\u7528\u6237:"user",\u8BA2\u5355:"order",\u5546\u54C1:"product",\u8D2D\u7269\u8F66:"cart",\u652F\u4ED8:"payment",\u5730\u5740:"address",\u6536\u85CF:"favorite",\u8BC4\u4EF7:"review",\u5BA2\u670D:"service",\u5E2E\u52A9:"help",\u5173\u4E8E:"about",\u53CD\u9988:"feedback",\u5BA1\u6279:"approval",\u7533\u8BF7:"apply",\u5F85\u529E:"todo",\u5DF2\u529E:"done",\u5DE5\u4F5C\u53F0:"workspace",\u7EDF\u8BA1:"statistics",\u62A5\u8868:"report"};if(t[o])return t[o];let e=o;for(const[a,n]of Object.entries(t))e=e.replace(new RegExp(a,"g"),`-${n}-`);return e=e.replace(/[\s_]+/g,"-").replace(/^-+|-+$/g,"").replace(/-+/g,"-").toLowerCase(),/[\u4e00-\u9fa5]/.test(e)?"my-page":e||"my-page"}function w(o){return h(o).moduleName}function I(o){return h(o).title}function H(o,t){const e={login:[{name:"login",description:"\u7528\u6237\u767B\u5F55",endpoint:"/login",params:"{ username, password }",hasDataPath:!0},{name:"logout",description:"\u9000\u51FA\u767B\u5F55",endpoint:"/logout",params:"{}",hasDataPath:!1},{name:"checkLogin",description:"\u68C0\u67E5\u767B\u5F55\u72B6\u6001",endpoint:"/check-login",params:"{}",hasDataPath:!0}],message:[{name:"getMessageList",description:"\u83B7\u53D6\u6D88\u606F\u5217\u8868",endpoint:"/list",params:"{ pageNum = 1, pageSize = 10, type }",hasDataPath:!0},{name:"getMessageDetail",description:"\u83B7\u53D6\u6D88\u606F\u8BE6\u60C5",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"markAsRead",description:"\u6807\u8BB0\u6D88\u606F\u5DF2\u8BFB",endpoint:"/read",params:"{ id }",hasDataPath:!1},{name:"markAllAsRead",description:"\u5168\u90E8\u6807\u8BB0\u5DF2\u8BFB",endpoint:"/read-all",params:"{}",hasDataPath:!1},{name:"deleteMessage",description:"\u5220\u9664\u6D88\u606F",endpoint:"/delete",params:"{ id }",hasDataPath:!1},{name:"getUnreadCount",description:"\u83B7\u53D6\u672A\u8BFB\u6570\u91CF",endpoint:"/unread-count",params:"{}",hasDataPath:!0}],list:[{name:"getList",description:"\u83B7\u53D6\u5217\u8868\u6570\u636E",endpoint:"/list",params:"{ pageNum = 1, pageSize = 10, ...filters }",hasDataPath:!0},{name:"getDetail",description:"\u83B7\u53D6\u8BE6\u60C5",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"deleteItem",description:"\u5220\u9664\u6570\u636E",endpoint:"/delete",params:"{ id }",hasDataPath:!1}],detail:[{name:"getDetail",description:"\u83B7\u53D6\u8BE6\u60C5\u6570\u636E",endpoint:"/detail",params:"{ id }",hasDataPath:!0}],form:[{name:"getDetail",description:"\u83B7\u53D6\u8868\u5355\u6570\u636E\uFF08\u7F16\u8F91\u65F6\uFF09",endpoint:"/detail",params:"{ id }",hasDataPath:!0},{name:"submit",description:"\u63D0\u4EA4\u8868\u5355",endpoint:"/submit",params:"formData",hasDataPath:!1},{name:"saveDraft",description:"\u4FDD\u5B58\u8349\u7A3F",endpoint:"/save-draft",params:"formData",hasDataPath:!1}],search:[{name:"search",description:"\u641C\u7D22",endpoint:"/search",params:"{ keyword, pageNum = 1, pageSize = 10 }",hasDataPath:!0},{name:"getHotKeywords",description:"\u83B7\u53D6\u70ED\u95E8\u641C\u7D22",endpoint:"/hot-keywords",params:"{}",hasDataPath:!0},{name:"getSearchHistory",description:"\u83B7\u53D6\u641C\u7D22\u5386\u53F2",endpoint:"/history",params:"{}",hasDataPath:!0},{name:"clearHistory",description:"\u6E05\u7A7A\u641C\u7D22\u5386\u53F2",endpoint:"/clear-history",params:"{}",hasDataPath:!1}],profile:[{name:"getUserInfo",description:"\u83B7\u53D6\u7528\u6237\u4FE1\u606F",endpoint:"/info",params:"{}",hasDataPath:!0},{name:"updateUserInfo",description:"\u66F4\u65B0\u7528\u6237\u4FE1\u606F",endpoint:"/update",params:"userData",hasDataPath:!1},{name:"uploadAvatar",description:"\u4E0A\u4F20\u5934\u50CF",endpoint:"/avatar",params:"{ file }",hasDataPath:!0}],settings:[{name:"getSettings",description:"\u83B7\u53D6\u8BBE\u7F6E",endpoint:"/settings",params:"{}",hasDataPath:!0},{name:"updateSettings",description:"\u66F4\u65B0\u8BBE\u7F6E",endpoint:"/update",params:"settings",hasDataPath:!1}],dashboard:[{name:"getStatistics",description:"\u83B7\u53D6\u7EDF\u8BA1\u6570\u636E",endpoint:"/statistics",params:"{}",hasDataPath:!0},{name:"getSummary",description:"\u83B7\u53D6\u6982\u89C8\u6570\u636E",endpoint:"/summary",params:"{}",hasDataPath:!0},{name:"getNotices",description:"\u83B7\u53D6\u901A\u77E5\u516C\u544A",endpoint:"/notices",params:"{ limit = 5 }",hasDataPath:!0}],generic:[{name:"getData",description:"\u83B7\u53D6\u6570\u636E",endpoint:"/data",params:"{}",hasDataPath:!0},{name:"submitData",description:"\u63D0\u4EA4\u6570\u636E",endpoint:"/submit",params:"data",hasDataPath:!1}]};return e[o]||e.generic}function _(o,t,e=!0){const a=x({description:o}),n=h(o),s=H(n.type,t),r=e?`/rest/mock/${t}`:`/api/${t}`,c=s.map(p=>{const d=p.hasDataPath?`,
|
|
2
2
|
dataPath: 'data'`:"";return`
|
|
3
3
|
/**
|
|
4
4
|
* ${p.description}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recommend/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/recommend/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAA4B,MAAM,mBAAmB,CAAC;AA0RtG;;GAEG;AACH,qBAAa,oBAAoB;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,cAAc,EAAE;IA0E3E;;;;OAIG;IACH,qBAAqB,CAAC,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM;CA6EjE;AAGD,eAAO,MAAM,oBAAoB,sBAA6B,CAAC"}
|
package/dist/recommend/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
const m=[{keywords:["\u63D0\u793A","\u6D88\u606F","toast","\u8F7B\u63D0\u793A"],type:"ejs-api",name:"ejs.ui.toast",description:"\u663E\u793A\u8F7B\u63D0\u793A\u6D88\u606F",usage:"ejs.ui.toast({ message: '\u64CD\u4F5C\u6210\u529F' });",priority:100},{keywords:["\u5F39\u7A97","\u8B66\u544A","alert","\u63D0\u9192"],type:"ejs-api",name:"ejs.ui.alert",description:"\u663E\u793A\u8B66\u544A\u5F39\u7A97",usage:"ejs.ui.alert({ title: '\u63D0\u793A', message: '\u8FD9\u662F\u4E00\u6761\u6D88\u606F' });",priority:100},{keywords:["\u786E\u8BA4","confirm","\u8BE2\u95EE","\u662F\u5426"],type:"ejs-api",name:"ejs.ui.confirm",description:"\u663E\u793A\u786E\u8BA4\u5F39\u7A97",usage:"const result = await ejs.ui.confirm({ title: '\u786E\u8BA4', message: '\u786E\u5B9A\u8981\u6267\u884C\u5417\uFF1F' });",priority:100},{keywords:["\u52A0\u8F7D","loading","\u7B49\u5F85","\u8BF7\u7A0D\u5019"],type:"ejs-api",name:"ejs.ui.showWaiting",description:"\u663E\u793A\u52A0\u8F7D\u4E2D\u63D0\u793A",usage:"ejs.ui.showWaiting({ message: '\u52A0\u8F7D\u4E2D...' });",priority:100},{keywords:["\u9009\u62E9","\u9009\u9879","picker","\u4E0B\u62C9"],type:"ejs-api",name:"ejs.ui.picker",description:"\u663E\u793A\u9009\u62E9\u5668",usage:"const result = await ejs.ui.picker({ options: ['\u9009\u98791', '\u9009\u98792'] });",priority:100},{keywords:["\u65E5\u671F","date","\u5E74\u6708\u65E5"],type:"ejs-api",name:"ejs.ui.pickDate",description:"\u663E\u793A\u65E5\u671F\u9009\u62E9\u5668",usage:"const date = await ejs.ui.pickDate({ title: '\u9009\u62E9\u65E5\u671F' });",priority:100},{keywords:["\u65F6\u95F4","time","\u65F6\u5206"],type:"ejs-api",name:"ejs.ui.pickTime",description:"\u663E\u793A\u65F6\u95F4\u9009\u62E9\u5668",usage:"const time = await ejs.ui.pickTime({ title: '\u9009\u62E9\u65F6\u95F4' });",priority:100},{keywords:["\u8DF3\u8F6C","\u6253\u5F00","\u9875\u9762","open","\u5BFC\u822A"],type:"ejs-api",name:"ejs.page.open",description:"\u6253\u5F00\u65B0\u9875\u9762",usage:"ejs.page.open({ pageUrl: './detail', data: { id: '123' } });",priority:100},{keywords:["\u5173\u95ED","\u8FD4\u56DE","close","\u9000\u51FA"],type:"ejs-api",name:"ejs.page.close",description:"\u5173\u95ED\u5F53\u524D\u9875\u9762",usage:"ejs.page.close({ resultData: { status: 'success' } });",priority:100},{keywords:["\u6807\u9898","title","\u9875\u9762\u6807\u9898"],type:"ejs-api",name:"ejs.page.setTitle",description:"\u8BBE\u7F6E\u9875\u9762\u6807\u9898",usage:"ejs.page.setTitle({ title: '\u65B0\u6807\u9898' });",priority:100},{keywords:["\u5B58\u50A8","\u7F13\u5B58","storage","\u672C\u5730"],type:"ejs-api",name:"ejs.storage",description:"\u672C\u5730\u5B58\u50A8\u64CD\u4F5C",usage:"ejs.storage.setItem({ key: 'token', value: 'xxx' });",priority:100},{keywords:["\u626B\u7801","\u4E8C\u7EF4\u7801","scan","qrcode"],type:"ejs-api",name:"
|
|
2
|
-
|
|
1
|
+
const m=[{keywords:["\u63D0\u793A","\u6D88\u606F","toast","\u8F7B\u63D0\u793A"],type:"ejs-api",name:"ejs.ui.toast",description:"\u663E\u793A\u8F7B\u63D0\u793A\u6D88\u606F",usage:"ejs.ui.toast({ message: '\u64CD\u4F5C\u6210\u529F' });",priority:100},{keywords:["\u5F39\u7A97","\u8B66\u544A","alert","\u63D0\u9192"],type:"ejs-api",name:"ejs.ui.alert",description:"\u663E\u793A\u8B66\u544A\u5F39\u7A97",usage:"ejs.ui.alert({ title: '\u63D0\u793A', message: '\u8FD9\u662F\u4E00\u6761\u6D88\u606F' });",priority:100},{keywords:["\u786E\u8BA4","confirm","\u8BE2\u95EE","\u662F\u5426"],type:"ejs-api",name:"ejs.ui.confirm",description:"\u663E\u793A\u786E\u8BA4\u5F39\u7A97",usage:"const result = await ejs.ui.confirm({ title: '\u786E\u8BA4', message: '\u786E\u5B9A\u8981\u6267\u884C\u5417\uFF1F' });",priority:100},{keywords:["\u52A0\u8F7D","loading","\u7B49\u5F85","\u8BF7\u7A0D\u5019"],type:"ejs-api",name:"ejs.ui.showWaiting",description:"\u663E\u793A\u52A0\u8F7D\u4E2D\u63D0\u793A",usage:"ejs.ui.showWaiting({ message: '\u52A0\u8F7D\u4E2D...' });",priority:100},{keywords:["\u9009\u62E9","\u9009\u9879","picker","\u4E0B\u62C9"],type:"ejs-api",name:"ejs.ui.picker",description:"\u663E\u793A\u9009\u62E9\u5668",usage:"const result = await ejs.ui.picker({ options: ['\u9009\u98791', '\u9009\u98792'] });",priority:100},{keywords:["\u65E5\u671F","date","\u5E74\u6708\u65E5"],type:"ejs-api",name:"ejs.ui.pickDate",description:"\u663E\u793A\u65E5\u671F\u9009\u62E9\u5668",usage:"const date = await ejs.ui.pickDate({ title: '\u9009\u62E9\u65E5\u671F' });",priority:100},{keywords:["\u65F6\u95F4","time","\u65F6\u5206"],type:"ejs-api",name:"ejs.ui.pickTime",description:"\u663E\u793A\u65F6\u95F4\u9009\u62E9\u5668",usage:"const time = await ejs.ui.pickTime({ title: '\u9009\u62E9\u65F6\u95F4' });",priority:100},{keywords:["\u8DF3\u8F6C","\u6253\u5F00","\u9875\u9762","open","\u5BFC\u822A"],type:"ejs-api",name:"ejs.page.open",description:"\u6253\u5F00\u65B0\u9875\u9762",usage:"ejs.page.open({ pageUrl: './detail', data: { id: '123' } });",priority:100},{keywords:["\u5173\u95ED","\u8FD4\u56DE","close","\u9000\u51FA"],type:"ejs-api",name:"ejs.page.close",description:"\u5173\u95ED\u5F53\u524D\u9875\u9762",usage:"ejs.page.close({ resultData: { status: 'success' } });",priority:100},{keywords:["\u6807\u9898","title","\u9875\u9762\u6807\u9898"],type:"ejs-api",name:"ejs.page.setTitle",description:"\u8BBE\u7F6E\u9875\u9762\u6807\u9898",usage:"ejs.page.setTitle({ title: '\u65B0\u6807\u9898' });",priority:100},{keywords:["\u5B58\u50A8","\u7F13\u5B58","storage","\u672C\u5730"],type:"ejs-api",name:"ejs.storage",description:"\u672C\u5730\u5B58\u50A8\u64CD\u4F5C",usage:"ejs.storage.setItem({ key: 'token', value: 'xxx' });",priority:100},{keywords:["\u626B\u7801","\u4E8C\u7EF4\u7801","scan","qrcode"],type:"ejs-api",name:"\u5E73\u53F0\u7279\u5B9AAPI(\u626B\u7801)",description:"\u626B\u7801\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API\uFF1A\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u7528 wx.scanCode\uFF0C\u516C\u4F17\u53F7\u7528 wx.scanQRCode",usage:`// \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F
|
|
2
|
+
wx.scanCode({ onlyFromCamera: true, success: (res) => { console.log(res.result); } });`,priority:100},{keywords:["\u62CD\u7167","\u76F8\u673A","camera","photo","\u7167\u7247"],type:"ejs-api",name:"\u5E73\u53F0\u7279\u5B9AAPI(\u62CD\u7167)",description:"\u62CD\u7167\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API\uFF1A\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F\u7528 wx.chooseMedia\uFF0C\u516C\u4F17\u53F7\u7528 wx.chooseImage",usage:`// \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F
|
|
3
|
+
wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['camera'], success: (res) => { console.log(res.tempFiles[0].tempFilePath); } });`,priority:100},{keywords:["\u5B9A\u4F4D","\u4F4D\u7F6E","location","gps"],type:"ejs-api",name:"\u5E73\u53F0\u7279\u5B9AAPI(\u5B9A\u4F4D)",description:"\u5B9A\u4F4D\u529F\u80FD\u9700\u6839\u636E\u76EE\u6807\u5E73\u53F0\u4F7F\u7528\u5BF9\u5E94 API\uFF1A\u5FAE\u4FE1\u5C0F\u7A0B\u5E8F/\u516C\u4F17\u53F7\u7528 wx.getLocation",usage:`// \u5FAE\u4FE1\u5C0F\u7A0B\u5E8F
|
|
4
|
+
wx.getLocation({ type: 'gcj02', success: (res) => { console.log(res.latitude, res.longitude); } });`,priority:100}],u=[{keywords:["\u6309\u94AE","button","\u70B9\u51FB","\u63D0\u4EA4"],type:"ui-component",name:"em-button",description:"\u6309\u94AE\u7EC4\u4EF6\uFF0C\u652F\u6301\u591A\u79CD\u7C7B\u578B\u548C\u72B6\u6001",usage:'<em-button type="primary" @click="handleClick">\u63D0\u4EA4</em-button>',priority:50},{keywords:["\u8F93\u5165","input","\u6587\u672C\u6846","\u8868\u5355\u9879"],type:"ui-component",name:"em-field",description:"\u8F93\u5165\u6846\u7EC4\u4EF6\uFF0C\u652F\u6301\u591A\u79CD\u8F93\u5165\u7C7B\u578B",usage:'<em-field v-model="value" label="\u7528\u6237\u540D" placeholder="\u8BF7\u8F93\u5165" />',priority:50},{keywords:["\u5355\u5143\u683C","cell","\u5217\u8868\u9879","\u83DC\u5355\u9879"],type:"ui-component",name:"em-cell",description:"\u5355\u5143\u683C\u7EC4\u4EF6\uFF0C\u7528\u4E8E\u5C55\u793A\u5217\u8868\u9879",usage:'<em-cell title="\u6807\u9898" value="\u5185\u5BB9" is-link />',priority:50},{keywords:["\u8868\u5355","form","\u63D0\u4EA4","\u9A8C\u8BC1"],type:"ui-component",name:"em-form",description:"\u8868\u5355\u7EC4\u4EF6\uFF0C\u652F\u6301\u8868\u5355\u9A8C\u8BC1",usage:'<em-form ref="form" :model="formData" :rules="rules">...</em-form>',priority:50},{keywords:["\u5F39\u51FA\u5C42","popup","\u62BD\u5C49","\u5E95\u90E8\u5F39\u51FA"],type:"ui-component",name:"em-popup",description:"\u5F39\u51FA\u5C42\u7EC4\u4EF6",usage:'<em-popup v-model="show" position="bottom">\u5185\u5BB9</em-popup>',priority:50},{keywords:["\u9009\u62E9\u5668","picker","\u6EDA\u52A8\u9009\u62E9"],type:"ui-component",name:"em-picker",description:"\u9009\u62E9\u5668\u7EC4\u4EF6",usage:'<em-picker :columns="columns" @confirm="onConfirm" />',priority:50},{keywords:["\u65E5\u671F\u9009\u62E9","datepicker","\u65E5\u5386"],type:"ui-component",name:"em-datepicker",description:"\u65E5\u671F\u9009\u62E9\u5668\u7EC4\u4EF6",usage:'<em-datepicker v-model="date" type="date" />',priority:50},{keywords:["\u5F00\u5173","switch","\u5207\u6362"],type:"ui-component",name:"em-switch",description:"\u5F00\u5173\u7EC4\u4EF6",usage:'<em-switch v-model="checked" />',priority:50},{keywords:["\u590D\u9009\u6846","checkbox","\u591A\u9009"],type:"ui-component",name:"em-checkbox",description:"\u590D\u9009\u6846\u7EC4\u4EF6",usage:'<em-checkbox v-model="checked">\u9009\u9879</em-checkbox>',priority:50},{keywords:["\u5355\u9009\u6846","radio","\u5355\u9009"],type:"ui-component",name:"em-radio",description:"\u5355\u9009\u6846\u7EC4\u4EF6",usage:'<em-radio-group v-model="value"><em-radio name="1">\u9009\u98791</em-radio></em-radio-group>',priority:50},{keywords:["\u4E0A\u4F20","upload","\u6587\u4EF6","\u56FE\u7247\u4E0A\u4F20"],type:"ui-component",name:"em-uploader",description:"\u6587\u4EF6\u4E0A\u4F20\u7EC4\u4EF6",usage:'<em-uploader v-model="fileList" :after-read="afterRead" />',priority:50},{keywords:["\u641C\u7D22","search","\u641C\u7D22\u6846"],type:"ui-component",name:"em-search",description:"\u641C\u7D22\u7EC4\u4EF6",usage:'<em-search v-model="keyword" placeholder="\u8BF7\u8F93\u5165\u641C\u7D22\u5173\u952E\u8BCD" />',priority:50},{keywords:["\u6807\u7B7E\u9875","tab","\u9009\u9879\u5361"],type:"ui-component",name:"em-tab",description:"\u6807\u7B7E\u9875\u7EC4\u4EF6",usage:'<em-tabs v-model="active"><em-tab title="\u6807\u7B7E1">\u5185\u5BB91</em-tab></em-tabs>',priority:50},{keywords:["\u4E0B\u62C9\u5237\u65B0","refresh","\u5237\u65B0"],type:"ui-component",name:"em-minirefresh",description:"\u4E0B\u62C9\u5237\u65B0\u7EC4\u4EF6",usage:'<em-minirefresh @refresh="onRefresh" @loadmore="onLoadMore">...</em-minirefresh>',priority:50}],d=[{keywords:["\u8BF7\u6C42","ajax","http","\u63A5\u53E3","api"],type:"util-method",name:"Util.ajax",description:"HTTP \u8BF7\u6C42\u65B9\u6CD5",usage:"Util.ajax({ url: Config.serverUrl + '/api', type: 'POST', data: {} });",priority:80},{keywords:["\u683C\u5F0F\u5316","\u65E5\u671F\u683C\u5F0F","format"],type:"util-method",name:"Util.date.format",description:"\u65E5\u671F\u683C\u5F0F\u5316",usage:"Util.date.format(new Date(), 'yyyy-MM-dd');",priority:60},{keywords:["\u5B57\u7B26\u4E32","\u622A\u53D6","\u5904\u7406"],type:"util-method",name:"Util.string",description:"\u5B57\u7B26\u4E32\u5904\u7406\u5DE5\u5177",usage:"Util.string.trim(' hello ');",priority:60}];class y{recommend(a,e){const o=a.toLowerCase(),t=[];let p=[];switch(e){case"native":p=m;break;case"ui":p=u;break;case"data":p=[...d,...m.filter(i=>i.name.includes("storage"))];break;default:p=[...m,...d,...u];break}for(const i of p){const s=i.keywords.filter(r=>o.includes(r.toLowerCase()));if(s.length>0){const r=s.length*10,n=i.priority+r;t.push({type:i.type,name:i.name,description:i.description,reason:`\u5339\u914D\u5173\u952E\u8BCD: ${s.join(", ")}`,priority:n,usage:i.usage})}}t.sort((i,s)=>{const r={"ejs-api":3,"util-method":2,"ui-component":1},n=r[s.type]-r[i.type];return n!==0?n:s.priority-i.priority});const c=new Set;return t.filter(i=>c.has(i.name)?!1:(c.add(i.name),!0))}formatRecommendations(a){if(a.length===0)return"\u672A\u627E\u5230\u5339\u914D\u7684\u63A8\u8350\u65B9\u6848\u3002\u8BF7\u5C1D\u8BD5\u66F4\u8BE6\u7EC6\u5730\u63CF\u8FF0\u60A8\u7684\u9700\u6C42\u3002";const e=["# \u63A8\u8350\u65B9\u6848",""],o={"ejs-api":[],"util-method":[],"ui-component":[]};for(const t of a)o[t.type].push(t);if(o["ejs-api"].length>0){e.push("## EJS \u539F\u751F API\uFF08\u63A8\u8350\u4F18\u5148\u4F7F\u7528\uFF09"),e.push("");for(const t of o["ejs-api"])e.push(`### ${t.name}`),e.push(""),e.push(t.description),e.push(""),e.push(`**\u63A8\u8350\u539F\u56E0**: ${t.reason}`),e.push(""),e.push("**\u4F7F\u7528\u793A\u4F8B**:"),e.push("```javascript"),e.push(t.usage),e.push("```"),e.push("")}if(o["util-method"].length>0){e.push("## Util \u5DE5\u5177\u65B9\u6CD5"),e.push("");for(const t of o["util-method"])e.push(`### ${t.name}`),e.push(""),e.push(t.description),e.push(""),e.push(`**\u63A8\u8350\u539F\u56E0**: ${t.reason}`),e.push(""),e.push("**\u4F7F\u7528\u793A\u4F8B**:"),e.push("```javascript"),e.push(t.usage),e.push("```"),e.push("")}if(o["ui-component"].length>0){e.push("## UI \u7EC4\u4EF6"),e.push("");for(const t of o["ui-component"])e.push(`### ${t.name}`),e.push(""),e.push(t.description),e.push(""),e.push(`**\u63A8\u8350\u539F\u56E0**: ${t.reason}`),e.push(""),e.push("**\u4F7F\u7528\u793A\u4F8B**:"),e.push("```vue"),e.push(t.usage),e.push("```"),e.push("")}return e.join(`
|
|
5
|
+
`)}}const h=new y;export{y as RecommendationEngine,h as recommendationEngine};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-code.d.ts","sourceRoot":"","sources":["../../src/tools/generate-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAoC,MAAM,mBAAmB,CAAC;AAGtG;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,cAiDpC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"generate-code.d.ts","sourceRoot":"","sources":["../../src/tools/generate-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAoC,MAAM,mBAAmB,CAAC;AAGtG;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,cAiDpC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAyI5F"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import{codeGenerator as
|
|
1
|
+
import{codeGenerator as y}from"../generator/index.js";const g={name:"generate_code",description:"\u6839\u636E\u9700\u6C42\u751F\u6210\u7B26\u5408 M8 \u6846\u67B6\u89C4\u8303\u7684\u4EE3\u7801\uFF0C\u81EA\u52A8\u5E94\u7528\u7EC4\u4EF6\u6620\u5C04\u3001EJS API\u3001Util.ajax \u8BF7\u6C42\u7B49\u5185\u7F6E\u89C4\u8303\u3002\u5982\u4E0D\u6307\u5B9A type\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u751F\u6210\u5B8C\u6574\u9875\u9762\uFF08Vue + SCSS + Router + Mock\uFF09\u3002",inputSchema:{type:"object",properties:{type:{oneOf:[{type:"string",enum:["vue-component","javascript","scss","api-call"],description:"\u5355\u4E00\u4EE3\u7801\u7C7B\u578B"},{type:"array",items:{type:"string",enum:["vue-component","javascript","scss","api-call","router","mock"]},description:"\u591A\u9009\u4EE3\u7801\u7C7B\u578B\u6570\u7EC4\uFF0C\u4E00\u6B21\u751F\u6210\u591A\u79CD\u4EE3\u7801"}],description:"\u4EE3\u7801\u7C7B\u578B\uFF1A\u5355\u9009\u5B57\u7B26\u4E32\u6216\u591A\u9009\u6570\u7EC4\u3002\u5982\u4E0D\u6307\u5B9A\uFF0C\u7CFB\u7EDF\u4F1A\u81EA\u52A8\u751F\u6210\u5B8C\u6574\u9875\u9762"},requirement:{type:"string",description:'\u9700\u6C42\u63CF\u8FF0\uFF0C\u5982"\u767B\u5F55\u9875\u9762\uFF0C\u5305\u542B\u7528\u6237\u540D\u3001\u5BC6\u7801\u8F93\u5165\u6846\u548C\u767B\u5F55\u6309\u94AE"'},vueVersion:{type:"number",enum:[2,3],description:"Vue \u7248\u672C\uFF0C2 \u4F7F\u7528 Options API (M8.3)\uFF0C3 \u4F7F\u7528 Composition API (M8.4)\uFF0C\u9ED8\u8BA4 2"},components:{type:"array",items:{type:"string"},description:"\u4F7F\u7528\u7684\u7EC4\u4EF6\u5217\u8868\uFF0C\u53EA\u80FD\u4F7F\u7528 M8 \u7EC4\u4EF6\u5E93\u4E2D\u7684\u7EC4\u4EF6\uFF08\u5982 em-field\u3001em-button\uFF09\u3002\u5982\u4E0D\u6307\u5B9A\u4F1A\u6839\u636E\u9700\u6C42\u81EA\u52A8\u63A8\u8350"},modulePath:{type:"string",description:"\u6A21\u5757\u8DEF\u5F84\uFF0C\u9ED8\u8BA4\u4E3A src/pages/[\u6A21\u5757\u540D]\u3002\u901A\u5E38\u65E0\u9700\u6307\u5B9A"},useMock:{type:"boolean",description:"\u662F\u5426\u4F7F\u7528 Mock \u6570\u636E\uFF0C\u9ED8\u8BA4 true"}},required:["requirement"]}};async function C(n){try{const t=n.type,r=n.requirement,s=n.vueVersion||2,l=n.components||[],d=n.modulePath,i=n.useMock!==!1,p=["vue-component","javascript","scss","api-call","router","mock"],c=["vue-component","javascript","scss","api-call"];if(!r||r.trim().length===0)return{content:[{type:"text",text:"\u9519\u8BEF\uFF1A\u9700\u6C42\u63CF\u8FF0\u4E0D\u80FD\u4E3A\u7A7A"}],isError:!0};let u;if(!t)u=["vue-component","scss","router","mock"];else if(Array.isArray(t)){const e=t.filter(m=>!p.includes(m));if(e.length>0)return{content:[{type:"text",text:`\u9519\u8BEF\uFF1A\u4E0D\u652F\u6301\u7684\u4EE3\u7801\u7C7B\u578B: ${JSON.stringify(e)}
|
|
2
2
|
|
|
3
3
|
\u652F\u6301\u7684\u7C7B\u578B\u6709\uFF1A
|
|
4
|
-
- \u5355\u4E00\u7C7B\u578B:
|
|
5
|
-
- \u53EF\u7EC4\u5408\u7C7B\u578B\uFF08\u6570\u7EC4\uFF09:
|
|
4
|
+
- \u5355\u4E00\u7C7B\u578B: ${c.join(", ")}
|
|
5
|
+
- \u53EF\u7EC4\u5408\u7C7B\u578B\uFF08\u6570\u7EC4\uFF09: ${p.join(", ")}
|
|
6
6
|
|
|
7
|
-
\
|
|
8
|
-
`)}]}}
|
|
9
|
-
|
|
7
|
+
\u63D0\u793A\uFF1A\u4E0D\u6307\u5B9A type \u53C2\u6570\u53EF\u81EA\u52A8\u751F\u6210\u5B8C\u6574\u9875\u9762`}],isError:!0};u=t}else if(c.includes(t)){const e=y.generateCode({type:t,requirement:r,vueVersion:s,components:l,useMock:i});return{content:[{type:"text",text:["# \u751F\u6210\u7684\u4EE3\u7801","",`**\u8BED\u8A00**: ${e.language}`,`**Vue \u7248\u672C**: ${s}`,`**\u4F7F\u7528 Mock**: ${i?"\u662F":"\u5426"}`,"","```"+e.language,e.code,"```","","## \u8BF4\u660E","",e.explanation].join(`
|
|
8
|
+
`)}]}}else return{content:[{type:"text",text:`\u9519\u8BEF\uFF1A\u4E0D\u652F\u6301\u7684\u4EE3\u7801\u7C7B\u578B: "${t}"
|
|
9
|
+
|
|
10
|
+
\u652F\u6301\u7684\u7C7B\u578B\u6709\uFF1A
|
|
11
|
+
- \u5355\u4E00\u7C7B\u578B: ${c.join(", ")}
|
|
12
|
+
- \u53EF\u7EC4\u5408\u7C7B\u578B\uFF08\u6570\u7EC4\uFF09: ${p.join(", ")}
|
|
13
|
+
|
|
14
|
+
\u63D0\u793A\uFF1A\u4E0D\u6307\u5B9A type \u53C2\u6570\u53EF\u81EA\u52A8\u751F\u6210\u5B8C\u6574\u9875\u9762`}],isError:!0};const a=y.generateMultipleCode({types:u,requirement:r,vueVersion:s,components:l,modulePath:d,useMock:i}),o=["# \u{1F3AF} M8 \u4EE3\u7801\u751F\u6210\u7ED3\u679C","","> \u4EE5\u4E0B\u4EE3\u7801\u4E25\u683C\u9075\u5FAA M8 \u6846\u67B6\u89C4\u8303\u751F\u6210","","| \u914D\u7F6E\u9879 | \u503C |","|--------|-----|",`| \u{1F4C2} \u6A21\u5757\u8DEF\u5F84 | \`${a.modulePath}\` |`,`| \u{1F527} Vue \u7248\u672C | ${s} (${s===3?"Composition API":"Options API"}) |`,`| \u{1F3AD} Mock \u6A21\u5F0F | ${i?"\u2705 \u542F\u7528":"\u274C \u7981\u7528"} |`,""];for(const e of a.files)o.push(`## \u{1F4C4} ${e.relativePath||e.filename}`),o.push(""),o.push("```"+e.language),o.push(e.code),o.push("```"),o.push("");return o.push(a.explanation),{content:[{type:"text",text:o.join(`
|
|
15
|
+
`)}]}}catch(t){return{content:[{type:"text",text:`\u4EE3\u7801\u751F\u6210\u5931\u8D25: ${t instanceof Error?t.message:"\u672A\u77E5\u9519\u8BEF"}`}],isError:!0}}}export{C as executeGenerateCode,g as generateCodeDefinition};
|