-
Notifications
You must be signed in to change notification settings - Fork 8
/
apiMode.js
43 lines (41 loc) · 3.33 KB
/
apiMode.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
const analysis = require('code-analysis-ts'); // 代码依赖分析工具
const { classPlugin } = require('./classPlugin'); // class API 分析插件
// const { classPlugin } = require('code-analysis-plugins'); // class API 分析插件
const { execSync } = require('child_process'); // 子进程操作
const DefaultBranch = 'main'; // 默认分支常量
function getGitBranch() { // 获取当前分支
try{
const branchName = execSync('git symbolic-ref --short -q HEAD', {
encoding: 'utf8'
}).trim();
// console.log(branchName);
return branchName;
}catch(e){
return DefaultBranch;
}
}
async function scan() {
try{
const { report, diagnosisInfos } = await analysis({
scanSource: [{ // 必须,待扫描源码的配置信息
name: 'Code-Demo', // 必填,项目名称
path: ['src'], // 必填,需要扫描的文件路径(基准路径为配置文件所在路径)
packageFile: 'package.json', // 可选,package.json 文件路径配置,用于收集依赖的版本信息
format: null, // 可选, 文件路径格式化函数,默认为null,一般不需要配置
httpRepo: `https://github.com/liangxin199045/code-demo/blob/${getGitBranch()}/` // 可选,项目gitlab/github url的访问前缀,用于点击行信息跳转,不填则不跳转
}],
analysisTarget: 'framework', // 必须,要分析的目标依赖名
analysisPlugins: [classPlugin], // 可选,自定义分析插件,默认为空数组,一般不需要配置
blackList: ['app.localStorage.set', 'location.href'], // 可选,需要标记的黑名单api,默认为空数组
browserApis: ['window','document','history','location'], // 可选,要分析的BrowserApi,默认为空数组
reportDir: 'docs', // 可选,生成代码分析报告的目录,默认为'report',不支持多级目录配置
reportTitle: 'Code-Demo代码分析报告', // 可选,代码分析报告标题,默认为'代码依赖分析报告'
isScanVue: true, // 可选,是否要扫描分析vue中的ts代码,默认为false
scorePlugin: 'default' // 可选,评分插件: Function|'default'|null, default表示运行默认插件,默认为null表示不评分
});
console.log(report);
}catch(e){
console.log(e);
}
};
scan();