@be-link/smart-test 1.0.1-beta.4 → 1.0.1-beta.6
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/analyzer/code-analyzer.d.ts +32 -0
- package/dist/analyzer/code-analyzer.d.ts.map +1 -0
- package/dist/analyzer/index.d.ts +7 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/mock-generator.d.ts +53 -0
- package/dist/analyzer/mock-generator.d.ts.map +1 -0
- package/dist/analyzer/react-analyzer.d.ts +62 -0
- package/dist/analyzer/react-analyzer.d.ts.map +1 -0
- package/dist/analyzer/test-generator.d.ts +34 -0
- package/dist/analyzer/test-generator.d.ts.map +1 -0
- package/dist/analyzer/type-analyzer.d.ts +50 -0
- package/dist/analyzer/type-analyzer.d.ts.map +1 -0
- package/dist/analyzer/types.d.ts +170 -0
- package/dist/analyzer/types.d.ts.map +1 -0
- package/dist/cli/commands/generate.d.ts +10 -4
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +1331 -1333
- package/package.json +8 -6
- package/dist/cli/commands/record.d.ts +0 -6
- package/dist/cli/commands/record.d.ts.map +0 -1
- package/dist/recorder/har-converter.d.ts +0 -51
- package/dist/recorder/har-converter.d.ts.map +0 -1
- package/dist/recorder/interactive-guide.d.ts +0 -67
- package/dist/recorder/interactive-guide.d.ts.map +0 -1
- package/dist/recorder/network-recorder.d.ts +0 -44
- package/dist/recorder/network-recorder.d.ts.map +0 -1
- package/dist/recorder/pom-generator.d.ts +0 -68
- package/dist/recorder/pom-generator.d.ts.map +0 -1
- package/dist/recorder/test-generator.d.ts +0 -39
- package/dist/recorder/test-generator.d.ts.map +0 -1
- package/dist/recorder/types.d.ts +0 -130
- package/dist/recorder/types.d.ts.map +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AnalysisResult } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* 代码分析器
|
|
4
|
+
*
|
|
5
|
+
* 负责解析 TypeScript/React 代码并提取有用的信息
|
|
6
|
+
*/
|
|
7
|
+
export declare class CodeAnalyzer {
|
|
8
|
+
private sourceFile?;
|
|
9
|
+
private reactAnalyzer;
|
|
10
|
+
private typeAnalyzer;
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* 分析文件
|
|
14
|
+
*
|
|
15
|
+
* @param filePath - 文件路径
|
|
16
|
+
* @returns 分析结果
|
|
17
|
+
*/
|
|
18
|
+
analyze(filePath: string): Promise<AnalysisResult>;
|
|
19
|
+
/**
|
|
20
|
+
* 提取导入信息
|
|
21
|
+
*/
|
|
22
|
+
private extractImports;
|
|
23
|
+
/**
|
|
24
|
+
* 判断是否是 React 文件
|
|
25
|
+
*/
|
|
26
|
+
private isReactFile;
|
|
27
|
+
/**
|
|
28
|
+
* 获取脚本类型
|
|
29
|
+
*/
|
|
30
|
+
private getScriptKind;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=code-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/code-analyzer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,SAAS,CAAC;AAK1D;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;;IAOnC;;;;;OAKG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA6CxD;;OAEG;IACH,OAAO,CAAC,cAAc;IAsDtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,aAAa;CAatB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './types';
|
|
2
|
+
export { CodeAnalyzer } from './code-analyzer';
|
|
3
|
+
export { ReactAnalyzer } from './react-analyzer';
|
|
4
|
+
export { TypeAnalyzer } from './type-analyzer';
|
|
5
|
+
export { MockGenerator } from './mock-generator';
|
|
6
|
+
export { TestGenerator } from './test-generator';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analyzer/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { AnalysisResult } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Mock 数据生成器
|
|
4
|
+
*
|
|
5
|
+
* 支持两种模式:
|
|
6
|
+
* 1. AI 生成:使用 AI 根据类型定义生成真实感的 mock 数据
|
|
7
|
+
* 2. Faker 生成:使用 faker.js 库生成随机数据(作为降级方案)
|
|
8
|
+
*/
|
|
9
|
+
export declare class MockGenerator {
|
|
10
|
+
private openai?;
|
|
11
|
+
private useAI;
|
|
12
|
+
/**
|
|
13
|
+
* 从分析结果生成 Mock 代码
|
|
14
|
+
*/
|
|
15
|
+
generateFromAnalysis(analysis: AnalysisResult): Promise<string>;
|
|
16
|
+
/**
|
|
17
|
+
* 使用 AI 生成 Mock 数据
|
|
18
|
+
*/
|
|
19
|
+
private generateWithAI;
|
|
20
|
+
/**
|
|
21
|
+
* 构建 AI 生成 Mock 数据的 prompt
|
|
22
|
+
*/
|
|
23
|
+
private buildAIPrompt;
|
|
24
|
+
/**
|
|
25
|
+
* 清理 AI 返回的代码
|
|
26
|
+
*/
|
|
27
|
+
private cleanAIResponse;
|
|
28
|
+
/**
|
|
29
|
+
* 使用 faker.js 生成 Mock 数据
|
|
30
|
+
*/
|
|
31
|
+
private generateWithFaker;
|
|
32
|
+
/**
|
|
33
|
+
* 为类型生成 Mock 数据
|
|
34
|
+
*/
|
|
35
|
+
private generateMockDataForType;
|
|
36
|
+
/**
|
|
37
|
+
* 根据属性信息生成 Mock 值
|
|
38
|
+
*/
|
|
39
|
+
private generateMockValue;
|
|
40
|
+
/**
|
|
41
|
+
* 根据类型生成值
|
|
42
|
+
*/
|
|
43
|
+
private generateValueByType;
|
|
44
|
+
/**
|
|
45
|
+
* 转换为 Mock 变量名
|
|
46
|
+
*/
|
|
47
|
+
private toMockVarName;
|
|
48
|
+
/**
|
|
49
|
+
* 生成空的 Mock 代码
|
|
50
|
+
*/
|
|
51
|
+
private generateEmptyMock;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=mock-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-generator.d.ts","sourceRoot":"","sources":["../../src/analyzer/mock-generator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAyB,cAAc,EAAE,MAAM,SAAS,CAAC;AAIrE;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,KAAK,CAAiB;IAE9B;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDrE;;OAEG;YACW,cAAc;IA4C5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAoDrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2CzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsEzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAW1B"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as ts from 'typescript';
|
|
2
|
+
import type { ComponentInfo } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* React 组件分析器
|
|
5
|
+
*
|
|
6
|
+
* 负责分析 React 组件,提取 Props、Hooks、API 调用等信息
|
|
7
|
+
*/
|
|
8
|
+
export declare class ReactAnalyzer {
|
|
9
|
+
/**
|
|
10
|
+
* 分析 React 组件
|
|
11
|
+
*/
|
|
12
|
+
analyze(sourceFile: ts.SourceFile): ComponentInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* 判断是否是函数组件
|
|
15
|
+
*/
|
|
16
|
+
private isFunctionComponent;
|
|
17
|
+
/**
|
|
18
|
+
* 判断是否是类组件
|
|
19
|
+
*/
|
|
20
|
+
private isClassComponent;
|
|
21
|
+
/**
|
|
22
|
+
* 分析函数组件
|
|
23
|
+
*/
|
|
24
|
+
private analyzeFunctionComponent;
|
|
25
|
+
/**
|
|
26
|
+
* 分析类组件
|
|
27
|
+
*/
|
|
28
|
+
private analyzeClassComponent;
|
|
29
|
+
/**
|
|
30
|
+
* 从参数中提取 Props
|
|
31
|
+
*/
|
|
32
|
+
private extractPropsFromParameters;
|
|
33
|
+
/**
|
|
34
|
+
* 从对象解构中提取 Props
|
|
35
|
+
*/
|
|
36
|
+
private extractPropsFromBindingPattern;
|
|
37
|
+
/**
|
|
38
|
+
* 从类型节点提取 Props
|
|
39
|
+
*/
|
|
40
|
+
private extractPropsFromTypeNode;
|
|
41
|
+
/**
|
|
42
|
+
* 提取 Hooks 调用
|
|
43
|
+
*/
|
|
44
|
+
private extractHooks;
|
|
45
|
+
/**
|
|
46
|
+
* 获取 Hook 类型
|
|
47
|
+
*/
|
|
48
|
+
private getHookType;
|
|
49
|
+
/**
|
|
50
|
+
* 提取 API 调用
|
|
51
|
+
*/
|
|
52
|
+
private extractApiCalls;
|
|
53
|
+
/**
|
|
54
|
+
* 分析 API 调用
|
|
55
|
+
*/
|
|
56
|
+
private analyzeApiCall;
|
|
57
|
+
/**
|
|
58
|
+
* 判断是否是 PascalCase
|
|
59
|
+
*/
|
|
60
|
+
private isPascalCase;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=react-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/react-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAmC,MAAM,SAAS,CAAC;AAG9E;;;;GAIG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,aAAa,EAAE;IA4BnD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuDhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAoBlC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IA2BtC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0BhC;;OAEG;IACH,OAAO,CAAC,YAAY;IAqCpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAsEtB;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AnalysisResult } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* AI 驱动的测试用例生成器
|
|
4
|
+
*
|
|
5
|
+
* 根据代码分析结果,使用 AI 生成 Playwright 测试用例
|
|
6
|
+
*/
|
|
7
|
+
export declare class TestGenerator {
|
|
8
|
+
private openai?;
|
|
9
|
+
/**
|
|
10
|
+
* 从分析结果生成测试代码
|
|
11
|
+
*/
|
|
12
|
+
generateFromAnalysis(analysis: AnalysisResult, mockFileName: string): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* 使用 AI 生成测试代码
|
|
15
|
+
*/
|
|
16
|
+
private generateWithAI;
|
|
17
|
+
/**
|
|
18
|
+
* 构建 AI 生成测试的 prompt
|
|
19
|
+
*/
|
|
20
|
+
private buildAIPrompt;
|
|
21
|
+
/**
|
|
22
|
+
* 生成基础测试模板
|
|
23
|
+
*/
|
|
24
|
+
private generateBasicTest;
|
|
25
|
+
/**
|
|
26
|
+
* 从文件路径提取组件名
|
|
27
|
+
*/
|
|
28
|
+
private extractComponentName;
|
|
29
|
+
/**
|
|
30
|
+
* 清理 AI 返回的代码
|
|
31
|
+
*/
|
|
32
|
+
private cleanAIResponse;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=test-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/analyzer/test-generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB3F;;OAEG;YACW,cAAc;IA8C5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAuGrB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6DzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAK5B;;OAEG;IACH,OAAO,CAAC,eAAe;CASxB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as ts from 'typescript';
|
|
2
|
+
import type { ApiTypeInfo } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* TypeScript 类型分析器
|
|
5
|
+
*
|
|
6
|
+
* 负责分析 TypeScript 接口和类型定义,提取 API 请求/响应类型信息
|
|
7
|
+
*/
|
|
8
|
+
export declare class TypeAnalyzer {
|
|
9
|
+
private sourceFile?;
|
|
10
|
+
/**
|
|
11
|
+
* 分析类型定义
|
|
12
|
+
*/
|
|
13
|
+
analyze(sourceFile: ts.SourceFile): ApiTypeInfo[];
|
|
14
|
+
/**
|
|
15
|
+
* 分析接口定义
|
|
16
|
+
*/
|
|
17
|
+
private analyzeInterface;
|
|
18
|
+
/**
|
|
19
|
+
* 分析类型别名
|
|
20
|
+
*/
|
|
21
|
+
private analyzeTypeAlias;
|
|
22
|
+
/**
|
|
23
|
+
* 检测是否是 API 相关类型
|
|
24
|
+
*/
|
|
25
|
+
private detectApiType;
|
|
26
|
+
/**
|
|
27
|
+
* 提取接口属性
|
|
28
|
+
*/
|
|
29
|
+
private extractInterfaceProperties;
|
|
30
|
+
/**
|
|
31
|
+
* 提取类型别名属性
|
|
32
|
+
*/
|
|
33
|
+
private extractTypeAliasProperties;
|
|
34
|
+
/**
|
|
35
|
+
* 提取属性签名信息
|
|
36
|
+
*/
|
|
37
|
+
private extractPropertySignature;
|
|
38
|
+
/**
|
|
39
|
+
* 从类型名称推断 API 路径和方法
|
|
40
|
+
*/
|
|
41
|
+
private inferApiPathFromName;
|
|
42
|
+
/**
|
|
43
|
+
* 解析复杂类型
|
|
44
|
+
*
|
|
45
|
+
* @param typeNode - TypeScript 类型节点
|
|
46
|
+
* @returns 类型的字符串表示
|
|
47
|
+
*/
|
|
48
|
+
parseComplexType(typeNode: ts.TypeNode): string;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=type-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/type-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,SAAS,CAAC;AAGrD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAC,CAAgB;IAEnC;;OAEG;IACH,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,WAAW,EAAE;IA6BjD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoCrB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0BlC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAkClC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAqChC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAiC5B;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,MAAM;CAwChD"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 分析结果
|
|
3
|
+
*/
|
|
4
|
+
export interface AnalysisResult {
|
|
5
|
+
/**
|
|
6
|
+
* 文件路径
|
|
7
|
+
*/
|
|
8
|
+
filePath: string;
|
|
9
|
+
/**
|
|
10
|
+
* 组件信息(如果是React组件)
|
|
11
|
+
*/
|
|
12
|
+
components?: ComponentInfo[];
|
|
13
|
+
/**
|
|
14
|
+
* API类型定义
|
|
15
|
+
*/
|
|
16
|
+
apiTypes?: ApiTypeInfo[];
|
|
17
|
+
/**
|
|
18
|
+
* 导入的依赖
|
|
19
|
+
*/
|
|
20
|
+
imports?: ImportInfo[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* React组件信息
|
|
24
|
+
*/
|
|
25
|
+
export interface ComponentInfo {
|
|
26
|
+
/**
|
|
27
|
+
* 组件名称
|
|
28
|
+
*/
|
|
29
|
+
name: string;
|
|
30
|
+
/**
|
|
31
|
+
* 组件类型
|
|
32
|
+
*/
|
|
33
|
+
type: 'FunctionComponent' | 'ClassComponent';
|
|
34
|
+
/**
|
|
35
|
+
* Props 类型定义
|
|
36
|
+
*/
|
|
37
|
+
props?: PropInfo[];
|
|
38
|
+
/**
|
|
39
|
+
* State 类型定义(类组件)
|
|
40
|
+
*/
|
|
41
|
+
state?: PropInfo[];
|
|
42
|
+
/**
|
|
43
|
+
* 使用的 Hooks
|
|
44
|
+
*/
|
|
45
|
+
hooks?: HookInfo[];
|
|
46
|
+
/**
|
|
47
|
+
* 组件内的API调用
|
|
48
|
+
*/
|
|
49
|
+
apiCalls?: ApiCallInfo[];
|
|
50
|
+
/**
|
|
51
|
+
* 组件源代码位置
|
|
52
|
+
*/
|
|
53
|
+
location: {
|
|
54
|
+
start: number;
|
|
55
|
+
end: number;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Props/State 属性信息
|
|
60
|
+
*/
|
|
61
|
+
export interface PropInfo {
|
|
62
|
+
/**
|
|
63
|
+
* 属性名
|
|
64
|
+
*/
|
|
65
|
+
name: string;
|
|
66
|
+
/**
|
|
67
|
+
* 类型
|
|
68
|
+
*/
|
|
69
|
+
type: string;
|
|
70
|
+
/**
|
|
71
|
+
* 是否必需
|
|
72
|
+
*/
|
|
73
|
+
required: boolean;
|
|
74
|
+
/**
|
|
75
|
+
* 默认值
|
|
76
|
+
*/
|
|
77
|
+
defaultValue?: string;
|
|
78
|
+
/**
|
|
79
|
+
* 注释/描述
|
|
80
|
+
*/
|
|
81
|
+
description?: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Hook 信息
|
|
85
|
+
*/
|
|
86
|
+
export interface HookInfo {
|
|
87
|
+
/**
|
|
88
|
+
* Hook 名称
|
|
89
|
+
*/
|
|
90
|
+
name: string;
|
|
91
|
+
/**
|
|
92
|
+
* Hook 类型
|
|
93
|
+
*/
|
|
94
|
+
type: 'useState' | 'useEffect' | 'useCallback' | 'useMemo' | 'useRef' | 'useContext' | 'custom';
|
|
95
|
+
/**
|
|
96
|
+
* 参数
|
|
97
|
+
*/
|
|
98
|
+
arguments?: string[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* API 调用信息
|
|
102
|
+
*/
|
|
103
|
+
export interface ApiCallInfo {
|
|
104
|
+
/**
|
|
105
|
+
* API 名称/路径
|
|
106
|
+
*/
|
|
107
|
+
name: string;
|
|
108
|
+
/**
|
|
109
|
+
* HTTP 方法
|
|
110
|
+
*/
|
|
111
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
112
|
+
/**
|
|
113
|
+
* 请求类型
|
|
114
|
+
*/
|
|
115
|
+
requestType?: string;
|
|
116
|
+
/**
|
|
117
|
+
* 响应类型
|
|
118
|
+
*/
|
|
119
|
+
responseType?: string;
|
|
120
|
+
/**
|
|
121
|
+
* API 调用位置
|
|
122
|
+
*/
|
|
123
|
+
location: {
|
|
124
|
+
start: number;
|
|
125
|
+
end: number;
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* API 类型信息
|
|
130
|
+
*/
|
|
131
|
+
export interface ApiTypeInfo {
|
|
132
|
+
/**
|
|
133
|
+
* 接口名称
|
|
134
|
+
*/
|
|
135
|
+
name: string;
|
|
136
|
+
/**
|
|
137
|
+
* 接口类型
|
|
138
|
+
*/
|
|
139
|
+
type: 'request' | 'response' | 'both';
|
|
140
|
+
/**
|
|
141
|
+
* 属性列表
|
|
142
|
+
*/
|
|
143
|
+
properties: PropInfo[];
|
|
144
|
+
/**
|
|
145
|
+
* 关联的API路径
|
|
146
|
+
*/
|
|
147
|
+
apiPath?: string;
|
|
148
|
+
/**
|
|
149
|
+
* HTTP方法
|
|
150
|
+
*/
|
|
151
|
+
method?: string;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 导入信息
|
|
155
|
+
*/
|
|
156
|
+
export interface ImportInfo {
|
|
157
|
+
/**
|
|
158
|
+
* 导入的模块名
|
|
159
|
+
*/
|
|
160
|
+
module: string;
|
|
161
|
+
/**
|
|
162
|
+
* 导入的成员
|
|
163
|
+
*/
|
|
164
|
+
imports: string[];
|
|
165
|
+
/**
|
|
166
|
+
* 是否是默认导入
|
|
167
|
+
*/
|
|
168
|
+
isDefault: boolean;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/analyzer/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;OAEG;IACH,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;IAEhG;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErD;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAEtC;;OAEG;IACH,UAAU,EAAE,QAAQ,EAAE,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB"}
|
|
@@ -2,15 +2,21 @@
|
|
|
2
2
|
* 生成命令选项
|
|
3
3
|
*/
|
|
4
4
|
export interface GenerateOptions {
|
|
5
|
+
/**
|
|
6
|
+
* 页面文件路径(代码分析模式)
|
|
7
|
+
*/
|
|
5
8
|
page?: string;
|
|
6
|
-
|
|
7
|
-
|
|
9
|
+
/**
|
|
10
|
+
* 输出目录
|
|
11
|
+
*/
|
|
8
12
|
output?: string;
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* 预览模式,不写入文件
|
|
15
|
+
*/
|
|
10
16
|
dryRun?: boolean;
|
|
11
17
|
}
|
|
12
18
|
/**
|
|
13
|
-
* 生成命令
|
|
19
|
+
* 生成命令 - 代码分析模式
|
|
14
20
|
*/
|
|
15
21
|
export declare function generateCommand(options: GenerateOptions): Promise<void>;
|
|
16
22
|
//# sourceMappingURL=generate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/generate.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8G7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA0HjD"}
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CA+CnC;AAED;;GAEG;AACH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE"}
|