review-edit-auto
Version:
scan your project, only review edited code in given time-range automatic
41 lines (36 loc) • 901 B
text/typescript
import {MESSAGE_PREFIX, MESSAGE_SUFFIX} from '../constants';
import getLevel from './getLevel';
import type {IComplexRuleParams, ILintRes} from './types';
/**
* 提取mssage主要部分
* @param {*} message
*/
function getMain(message: string) {
return message.replace(MESSAGE_PREFIX, '').replace(MESSAGE_SUFFIX, '');
}
/**
* 提取代码复杂度
* @param {*} message
*/
function getComplexity(message: string) {
const main = getMain(message);
/(\d+)\./g.test(main);
return +RegExp.$1;
}
const complexRule = ({
message,
min,
}: IComplexRuleParams): Omit<
ILintRes,
'author' | 'position' | 'fileName' | 'rule'
> | null => {
const complexity = getComplexity(message);
if (complexity >= min) {
return {
message: `code is too complex,complexity is ${complexity}`,
level: getLevel(complexity, true),
};
}
return null;
};
export default complexRule;