eff-u-code 2.0.1 → 2.1.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.
- package/README.md +27 -1
- package/dist/analyzer/concurrent-analyzer.d.ts.map +1 -1
- package/dist/analyzer/concurrent-analyzer.js +4 -3
- package/dist/analyzer/concurrent-analyzer.js.map +1 -1
- package/dist/cli/commands/uninstall.d.ts +11 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +195 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/commands/update.d.ts +6 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +53 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +7 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/i18n/locales/en.json +30 -1
- package/dist/i18n/locales/ru.json +30 -1
- package/dist/i18n/locales/zh.json +32 -3
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/metrics/complexity/cognitive.d.ts +5 -7
- package/dist/metrics/complexity/cognitive.d.ts.map +1 -1
- package/dist/metrics/complexity/cognitive.js +19 -27
- package/dist/metrics/complexity/cognitive.js.map +1 -1
- package/dist/metrics/complexity/cyclomatic.d.ts +5 -7
- package/dist/metrics/complexity/cyclomatic.d.ts.map +1 -1
- package/dist/metrics/complexity/cyclomatic.js +19 -34
- package/dist/metrics/complexity/cyclomatic.js.map +1 -1
- package/dist/metrics/complexity/nesting-depth.d.ts +5 -7
- package/dist/metrics/complexity/nesting-depth.d.ts.map +1 -1
- package/dist/metrics/complexity/nesting-depth.js +19 -24
- package/dist/metrics/complexity/nesting-depth.js.map +1 -1
- package/dist/metrics/index.d.ts +3 -2
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +8 -8
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/naming/convention.d.ts.map +1 -1
- package/dist/metrics/naming/convention.js +4 -0
- package/dist/metrics/naming/convention.js.map +1 -1
- package/dist/metrics/size/file-length.d.ts +5 -7
- package/dist/metrics/size/file-length.d.ts.map +1 -1
- package/dist/metrics/size/file-length.js +18 -23
- package/dist/metrics/size/file-length.js.map +1 -1
- package/dist/metrics/size/function-length.d.ts +5 -8
- package/dist/metrics/size/function-length.d.ts.map +1 -1
- package/dist/metrics/size/function-length.js +19 -25
- package/dist/metrics/size/function-length.js.map +1 -1
- package/dist/metrics/size/parameter-count.d.ts +5 -7
- package/dist/metrics/size/parameter-count.d.ts.map +1 -1
- package/dist/metrics/size/parameter-count.js +19 -24
- package/dist/metrics/size/parameter-count.js.map +1 -1
- package/dist/metrics/thresholds/language-thresholds.d.ts +30 -0
- package/dist/metrics/thresholds/language-thresholds.d.ts.map +1 -0
- package/dist/metrics/thresholds/language-thresholds.js +247 -0
- package/dist/metrics/thresholds/language-thresholds.js.map +1 -0
- package/dist/parser/tree-sitter-parser.d.ts.map +1 -1
- package/dist/parser/tree-sitter-parser.js +128 -0
- package/dist/parser/tree-sitter-parser.js.map +1 -1
- package/dist/parser/types.d.ts +1 -1
- package/dist/parser/types.d.ts.map +1 -1
- package/dist/parser/types.js +10 -0
- package/dist/parser/types.js.map +1 -1
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +6 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ A tool designed to **expose shitty code quality** with sharp but humorous feedba
|
|
|
7
7
|
|
|
8
8
|
## Features
|
|
9
9
|
|
|
10
|
-
* **Multi-language support**: Go, JavaScript, TypeScript, Python, Java, C, C++, Rust, C#, Lua
|
|
10
|
+
* **Multi-language support**: Go, JavaScript, TypeScript, Python, Java, C, C++, Rust, C#, Lua, PHP, Ruby, Swift, Shell (14 languages)
|
|
11
11
|
* **Overall Score**: 0~100, higher = better code quality
|
|
12
12
|
* **Shit-Gas Index**: Per-file score, higher = worse code
|
|
13
13
|
* **Seven quality checks**: Complexity / Size / Comments / Error handling / Naming / Duplication / Structure
|
|
@@ -97,6 +97,32 @@ fuck-u-code config set ai.model gpt-4o # Set AI model
|
|
|
97
97
|
fuck-u-code config set ai.apiKey sk-xxx # Set API key
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
+
### Update
|
|
101
|
+
|
|
102
|
+
Update eff-u-code to the latest version:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
fuck-u-code update # Update to latest version
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
This will:
|
|
109
|
+
- Check current installed version
|
|
110
|
+
- Check latest version on npm
|
|
111
|
+
- Auto-install the latest version globally
|
|
112
|
+
|
|
113
|
+
### Uninstall
|
|
114
|
+
|
|
115
|
+
Remove fuck-u-code and clean up all local files:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
fuck-u-code uninstall # Remove global config, MCP entries, and npm package
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This will remove:
|
|
122
|
+
- Global config file (`~/.fuckucoderc.json`)
|
|
123
|
+
- MCP server entries (Claude Code, Cursor)
|
|
124
|
+
- Global npm package (`eff-u-code`)
|
|
125
|
+
|
|
100
126
|
## Configuration File
|
|
101
127
|
|
|
102
128
|
Auto-discovered from project directory upward, then falls back to global `~/.fuckucoderc.json`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concurrent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"concurrent-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,aAAa,EACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpD,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B"}
|
|
@@ -15,12 +15,11 @@ const MAX_FILE_SIZE_KB = 500;
|
|
|
15
15
|
export async function analyzeFilesConcurrently(files, config, onProgress) {
|
|
16
16
|
const concurrency = config.concurrency || 8;
|
|
17
17
|
const limit = pLimit(concurrency);
|
|
18
|
-
const metrics = createMetrics(config);
|
|
19
18
|
let completed = 0;
|
|
20
19
|
const total = files.length;
|
|
21
20
|
const tasks = files.map((file) => limit(async () => {
|
|
22
21
|
try {
|
|
23
|
-
const result = await analyzeFile(file,
|
|
22
|
+
const result = await analyzeFile(file, config);
|
|
24
23
|
completed++;
|
|
25
24
|
onProgress?.(completed, total);
|
|
26
25
|
return result;
|
|
@@ -38,7 +37,7 @@ export async function analyzeFilesConcurrently(files, config, onProgress) {
|
|
|
38
37
|
/**
|
|
39
38
|
* Analyze a single file
|
|
40
39
|
*/
|
|
41
|
-
async function analyzeFile(file,
|
|
40
|
+
async function analyzeFile(file, config) {
|
|
42
41
|
// Check file size
|
|
43
42
|
const fileSize = await getFileSize(file.absolutePath);
|
|
44
43
|
const fileSizeKB = Math.round(fileSize / 1024);
|
|
@@ -53,6 +52,8 @@ async function analyzeFile(file, metrics, config) {
|
|
|
53
52
|
const parseResult = await parser.parse(file.absolutePath, content);
|
|
54
53
|
// Add content to parse result for metrics that need it
|
|
55
54
|
parseResult.content = content;
|
|
55
|
+
// Create language-specific metrics
|
|
56
|
+
const metrics = createMetrics(config, parseResult.language);
|
|
56
57
|
// Calculate metrics
|
|
57
58
|
const metricResults = metrics.map((metric) => metric.calculate(parseResult));
|
|
58
59
|
// Calculate overall score
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concurrent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,kBAAkB,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAuB,EACvB,MAAqB,EACrB,UAAqD;IAErD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"concurrent-analyzer.js","sourceRoot":"","sources":["../../src/analyzer/concurrent-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uninstall command
|
|
3
|
+
*
|
|
4
|
+
* Removes fuck-u-code related files from local system:
|
|
5
|
+
* - Global config file (~/.fuckucoderc.json)
|
|
6
|
+
* - MCP server entries from Claude Code and Cursor configs
|
|
7
|
+
* - Global npm package (eff-u-code)
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createUninstallCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=uninstall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6IpC,wBAAgB,sBAAsB,IAAI,OAAO,CAkFhD"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uninstall command
|
|
3
|
+
*
|
|
4
|
+
* Removes fuck-u-code related files from local system:
|
|
5
|
+
* - Global config file (~/.fuckucoderc.json)
|
|
6
|
+
* - MCP server entries from Claude Code and Cursor configs
|
|
7
|
+
* - Global npm package (eff-u-code)
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { homedir } from 'node:os';
|
|
12
|
+
import { readFile, writeFile, unlink } from 'node:fs/promises';
|
|
13
|
+
import { exists } from '../../utils/fs.js';
|
|
14
|
+
import { t } from '../../i18n/index.js';
|
|
15
|
+
import chalk from 'chalk';
|
|
16
|
+
import inquirer from 'inquirer';
|
|
17
|
+
import { exec } from 'node:child_process';
|
|
18
|
+
import { promisify } from 'node:util';
|
|
19
|
+
const execAsync = promisify(exec);
|
|
20
|
+
async function removeGlobalConfig() {
|
|
21
|
+
try {
|
|
22
|
+
const configPath = join(homedir(), '.fuckucoderc.json');
|
|
23
|
+
if (await exists(configPath)) {
|
|
24
|
+
await unlink(configPath);
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`Failed to remove config: ${error instanceof Error ? error.message : String(error)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async function removeMcpFromConfig(configPath) {
|
|
34
|
+
try {
|
|
35
|
+
if (!(await exists(configPath))) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const content = await readFile(configPath, 'utf-8');
|
|
39
|
+
let config;
|
|
40
|
+
try {
|
|
41
|
+
config = JSON.parse(content);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
throw new Error(`Invalid JSON in ${configPath}`);
|
|
45
|
+
}
|
|
46
|
+
if (config.mcpServers?.['fuck-u-code']) {
|
|
47
|
+
delete config.mcpServers['fuck-u-code'];
|
|
48
|
+
await writeFile(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw new Error(`Failed to update ${configPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function uninstallNpmPackage() {
|
|
58
|
+
try {
|
|
59
|
+
const { stderr } = await execAsync('npm uninstall -g eff-u-code');
|
|
60
|
+
if (stderr.includes('not installed')) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
67
|
+
if (errorMsg.includes('not installed') || errorMsg.includes('ERR! 404')) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
throw new Error(`Failed to uninstall npm package: ${errorMsg}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function performCleanup() {
|
|
74
|
+
const result = {
|
|
75
|
+
globalConfig: false,
|
|
76
|
+
claudeCode: false,
|
|
77
|
+
cursor: false,
|
|
78
|
+
npmPackage: false,
|
|
79
|
+
errors: [],
|
|
80
|
+
};
|
|
81
|
+
// Remove global config
|
|
82
|
+
try {
|
|
83
|
+
result.globalConfig = await removeGlobalConfig();
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
87
|
+
}
|
|
88
|
+
// Remove MCP from Claude Code
|
|
89
|
+
try {
|
|
90
|
+
const claudePath = join(homedir(), '.claude.json');
|
|
91
|
+
result.claudeCode = await removeMcpFromConfig(claudePath);
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
95
|
+
}
|
|
96
|
+
// Remove MCP from Cursor (try multiple possible locations)
|
|
97
|
+
try {
|
|
98
|
+
const cursorPaths = [
|
|
99
|
+
join(process.cwd(), '.cursor', 'mcp.json'),
|
|
100
|
+
join(homedir(), '.cursor', 'mcp.json'),
|
|
101
|
+
];
|
|
102
|
+
for (const cursorPath of cursorPaths) {
|
|
103
|
+
const removed = await removeMcpFromConfig(cursorPath);
|
|
104
|
+
if (removed) {
|
|
105
|
+
result.cursor = true;
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
112
|
+
}
|
|
113
|
+
// Uninstall npm package
|
|
114
|
+
try {
|
|
115
|
+
result.npmPackage = await uninstallNpmPackage();
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
119
|
+
}
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
export function createUninstallCommand() {
|
|
123
|
+
const command = new Command('uninstall');
|
|
124
|
+
command
|
|
125
|
+
.description(t('cmd_uninstall_description'))
|
|
126
|
+
.addHelpText('after', `
|
|
127
|
+
${t('cli_examples')}
|
|
128
|
+
$ fuck-u-code uninstall # ${t('uninstall_example')}
|
|
129
|
+
`)
|
|
130
|
+
.action(async () => {
|
|
131
|
+
try {
|
|
132
|
+
console.log(chalk.yellow(t('uninstall_warning')));
|
|
133
|
+
console.log(chalk.gray(t('uninstall_items')));
|
|
134
|
+
console.log(chalk.gray(' - ' + t('uninstall_item_config')));
|
|
135
|
+
console.log(chalk.gray(' - ' + t('uninstall_item_mcp')));
|
|
136
|
+
console.log(chalk.gray(' - ' + t('uninstall_item_npm')));
|
|
137
|
+
console.log();
|
|
138
|
+
const answer = await inquirer.prompt([
|
|
139
|
+
{
|
|
140
|
+
type: 'confirm',
|
|
141
|
+
name: 'confirm',
|
|
142
|
+
message: t('uninstall_confirm'),
|
|
143
|
+
default: false,
|
|
144
|
+
},
|
|
145
|
+
]);
|
|
146
|
+
if (!answer.confirm) {
|
|
147
|
+
console.log(chalk.yellow(t('uninstall_cancelled')));
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
console.log();
|
|
151
|
+
console.log(chalk.blue(t('uninstall_processing')));
|
|
152
|
+
const result = await performCleanup();
|
|
153
|
+
console.log();
|
|
154
|
+
if (result.globalConfig) {
|
|
155
|
+
console.log(chalk.green('✓ ' + t('uninstall_removed_config')));
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.log(chalk.gray('- ' + t('uninstall_no_config')));
|
|
159
|
+
}
|
|
160
|
+
if (result.claudeCode) {
|
|
161
|
+
console.log(chalk.green('✓ ' + t('uninstall_removed_claude')));
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
console.log(chalk.gray('- ' + t('uninstall_no_claude')));
|
|
165
|
+
}
|
|
166
|
+
if (result.cursor) {
|
|
167
|
+
console.log(chalk.green('✓ ' + t('uninstall_removed_cursor')));
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log(chalk.gray('- ' + t('uninstall_no_cursor')));
|
|
171
|
+
}
|
|
172
|
+
if (result.npmPackage) {
|
|
173
|
+
console.log(chalk.green('✓ ' + t('uninstall_removed_npm')));
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
console.log(chalk.gray('- ' + t('uninstall_no_npm')));
|
|
177
|
+
}
|
|
178
|
+
if (result.errors.length > 0) {
|
|
179
|
+
console.log();
|
|
180
|
+
console.log(chalk.yellow('⚠️ Some operations failed:'));
|
|
181
|
+
for (const error of result.errors) {
|
|
182
|
+
console.log(chalk.yellow(' - ' + error));
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
console.log();
|
|
186
|
+
console.log(chalk.green(t('uninstall_complete')));
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
console.error(chalk.red(error instanceof Error ? error.message : String(error)));
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
return command;
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=uninstall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/cli/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,mBAAmB,IAAI,OAAO,CAuD7C"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update command - updates eff-u-code to the latest version
|
|
3
|
+
*/
|
|
4
|
+
import { Command } from 'commander';
|
|
5
|
+
import { execSync } from 'node:child_process';
|
|
6
|
+
import { t } from '../../i18n/index.js';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
export function createUpdateCommand() {
|
|
9
|
+
const command = new Command('update');
|
|
10
|
+
command
|
|
11
|
+
.description(t('cmd_update_description'))
|
|
12
|
+
.addHelpText('after', `
|
|
13
|
+
${t('cli_examples')}
|
|
14
|
+
$ fuck-u-code update # ${t('cmd_update_example')}
|
|
15
|
+
`)
|
|
16
|
+
.action(() => {
|
|
17
|
+
try {
|
|
18
|
+
console.log(chalk.blue('🔄 ' + t('update_checking')));
|
|
19
|
+
// Get current version
|
|
20
|
+
const currentVersion = execSync('npm list -g eff-u-code --depth=0 --json', {
|
|
21
|
+
encoding: 'utf-8',
|
|
22
|
+
});
|
|
23
|
+
const current = JSON.parse(currentVersion);
|
|
24
|
+
const installedVersion = current.dependencies?.['eff-u-code']?.version ?? 'unknown';
|
|
25
|
+
// Get latest version from npm
|
|
26
|
+
const latestVersionOutput = execSync('npm view eff-u-code version', {
|
|
27
|
+
encoding: 'utf-8',
|
|
28
|
+
}).trim();
|
|
29
|
+
console.log(chalk.gray(`${t('update_current_version')}: ${installedVersion}`));
|
|
30
|
+
console.log(chalk.gray(`${t('update_latest_version')}: ${latestVersionOutput}`));
|
|
31
|
+
if (installedVersion === latestVersionOutput) {
|
|
32
|
+
console.log(chalk.green('✓ ' + t('update_already_latest')));
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
console.log(chalk.yellow('⬆ ' + t('update_updating')));
|
|
36
|
+
// Update the package
|
|
37
|
+
execSync('npm install -g eff-u-code@latest', {
|
|
38
|
+
stdio: 'inherit',
|
|
39
|
+
});
|
|
40
|
+
console.log(chalk.green('✓ ' + t('update_success')));
|
|
41
|
+
console.log(chalk.gray(`${t('update_updated_to')}: ${latestVersionOutput}`));
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error(chalk.red('✗ ' + t('update_failed')));
|
|
45
|
+
if (error instanceof Error) {
|
|
46
|
+
console.error(chalk.red(error.message));
|
|
47
|
+
}
|
|
48
|
+
process.exit(1);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return command;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,MAAM,UAAU,mBAAmB;IACjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEtC,OAAO;SACJ,WAAW,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;SACxC,WAAW,CACV,OAAO,EACP;EACJ,CAAC,CAAC,cAAc,CAAC;8BACW,CAAC,CAAC,oBAAoB,CAAC;CACpD,CACI;SACA,MAAM,CAAC,GAAG,EAAE;QACX,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEtD,sBAAsB;YACtB,MAAM,cAAc,GAAG,QAAQ,CAAC,yCAAyC,EAAE;gBACzE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAkB,CAAC;YAC5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,IAAI,SAAS,CAAC;YAEpF,8BAA8B;YAC9B,MAAM,mBAAmB,GAAG,QAAQ,CAAC,6BAA6B,EAAE;gBAClE,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YAEV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,wBAAwB,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,uBAAuB,CAAC,KAAK,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAEjF,IAAI,gBAAgB,KAAK,mBAAmB,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAEvD,qBAAqB;YACrB,QAAQ,CAAC,kCAAkC,EAAE;gBAC3C,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,CAAC,KAAK,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
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;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAcpC,wBAAgB,SAAS,IAAI,OAAO,CAiCnC;AAED,wBAAsB,MAAM,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCzE"}
|
package/dist/cli/index.js
CHANGED
|
@@ -6,10 +6,12 @@ import { createAnalyzeCommand } from './commands/analyze.js';
|
|
|
6
6
|
import { createAIReviewCommand } from './commands/ai-review.js';
|
|
7
7
|
import { createConfigCommand } from './commands/config.js';
|
|
8
8
|
import { createMcpInstallCommand } from './commands/mcp-install.js';
|
|
9
|
+
import { createUninstallCommand } from './commands/uninstall.js';
|
|
10
|
+
import { createUpdateCommand } from './commands/update.js';
|
|
9
11
|
import { t, setLocale } from '../i18n/index.js';
|
|
10
12
|
import { loadLocaleFromConfig } from '../config/index.js';
|
|
11
13
|
import { getSupportedLanguageNames } from '../parser/index.js';
|
|
12
|
-
|
|
14
|
+
import { VERSION } from '../version.js';
|
|
13
15
|
const VALID_LOCALES = ['en', 'zh', 'ru'];
|
|
14
16
|
export function createCLI() {
|
|
15
17
|
const program = new Command();
|
|
@@ -25,6 +27,8 @@ ${t('cli_examples')}
|
|
|
25
27
|
$ fuck-u-code analyze . --locale zh # ${t('cli_example_analyze_locale')}
|
|
26
28
|
$ fuck-u-code ai-review . --model gpt-4o # ${t('cli_example_ai_review')}
|
|
27
29
|
$ fuck-u-code mcp-install claude # ${t('cli_example_mcp_install')}
|
|
30
|
+
$ fuck-u-code update # ${t('cmd_update_example')}
|
|
31
|
+
$ fuck-u-code uninstall # ${t('uninstall_example')}
|
|
28
32
|
|
|
29
33
|
${t('cli_supported_languages')}
|
|
30
34
|
${getSupportedLanguageNames()}
|
|
@@ -33,6 +37,8 @@ ${t('cli_supported_languages')}
|
|
|
33
37
|
program.addCommand(createAIReviewCommand());
|
|
34
38
|
program.addCommand(createConfigCommand());
|
|
35
39
|
program.addCommand(createMcpInstallCommand());
|
|
40
|
+
program.addCommand(createUpdateCommand());
|
|
41
|
+
program.addCommand(createUninstallCommand());
|
|
36
42
|
return program;
|
|
37
43
|
}
|
|
38
44
|
export async function runCLI(args = process.argv) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -316,5 +316,34 @@
|
|
|
316
316
|
"mcp_config_updated": "MCP Server configuration updated in {path}",
|
|
317
317
|
"mcp_unknown_target": "Unknown target: {target}. Supported: claude, cursor",
|
|
318
318
|
"mcp_install_example_claude": "Configure for Claude Code",
|
|
319
|
-
"mcp_install_example_cursor": "Configure for Cursor"
|
|
319
|
+
"mcp_install_example_cursor": "Configure for Cursor",
|
|
320
|
+
"cmd_uninstall_description": "Remove fuck-u-code from local system",
|
|
321
|
+
"uninstall_example": "Clean up all local files",
|
|
322
|
+
"uninstall_warning": "⚠️ This will remove fuck-u-code from your system",
|
|
323
|
+
"uninstall_items": "The following will be removed:",
|
|
324
|
+
"uninstall_item_config": "Global config file (~/.fuckucoderc.json)",
|
|
325
|
+
"uninstall_item_mcp": "MCP server entries (Claude Code, Cursor)",
|
|
326
|
+
"uninstall_item_npm": "Global npm package (eff-u-code)",
|
|
327
|
+
"uninstall_confirm": "Are you sure you want to proceed?",
|
|
328
|
+
"uninstall_cancelled": "Uninstall cancelled",
|
|
329
|
+
"uninstall_processing": "Removing fuck-u-code...",
|
|
330
|
+
"uninstall_removed_config": "Removed global config file",
|
|
331
|
+
"uninstall_no_config": "No global config file found",
|
|
332
|
+
"uninstall_removed_claude": "Removed MCP entry from Claude Code",
|
|
333
|
+
"uninstall_no_claude": "No MCP entry in Claude Code",
|
|
334
|
+
"uninstall_removed_cursor": "Removed MCP entry from Cursor",
|
|
335
|
+
"uninstall_no_cursor": "No MCP entry in Cursor",
|
|
336
|
+
"uninstall_removed_npm": "Uninstalled global npm package",
|
|
337
|
+
"uninstall_no_npm": "No global npm package found",
|
|
338
|
+
"uninstall_complete": "✓ Uninstall complete. Goodbye!",
|
|
339
|
+
"cmd_update_description": "Update eff-u-code to the latest version",
|
|
340
|
+
"cmd_update_example": "Update to latest version",
|
|
341
|
+
"update_checking": "Checking for updates...",
|
|
342
|
+
"update_current_version": "Current version",
|
|
343
|
+
"update_latest_version": "Latest version",
|
|
344
|
+
"update_already_latest": "Already on the latest version",
|
|
345
|
+
"update_updating": "Updating eff-u-code...",
|
|
346
|
+
"update_success": "Update successful!",
|
|
347
|
+
"update_updated_to": "Updated to version",
|
|
348
|
+
"update_failed": "Update failed"
|
|
320
349
|
}
|
|
@@ -316,5 +316,34 @@
|
|
|
316
316
|
"mcp_config_updated": "Конфигурация MCP Server обновлена в {path}",
|
|
317
317
|
"mcp_unknown_target": "Неизвестная цель: {target}. Поддерживаются: claude, cursor",
|
|
318
318
|
"mcp_install_example_claude": "Настроить для Claude Code",
|
|
319
|
-
"mcp_install_example_cursor": "Настроить для Cursor"
|
|
319
|
+
"mcp_install_example_cursor": "Настроить для Cursor",
|
|
320
|
+
"cmd_uninstall_description": "Удалить fuck-u-code из локальной системы",
|
|
321
|
+
"uninstall_example": "Очистить все локальные файлы",
|
|
322
|
+
"uninstall_warning": "⚠️ Это удалит fuck-u-code из вашей системы",
|
|
323
|
+
"uninstall_items": "Будет удалено следующее:",
|
|
324
|
+
"uninstall_item_config": "Глобальный файл конфигурации (~/.fuckucoderc.json)",
|
|
325
|
+
"uninstall_item_mcp": "Записи MCP-сервера (Claude Code, Cursor)",
|
|
326
|
+
"uninstall_item_npm": "Глобальный npm-пакет (eff-u-code)",
|
|
327
|
+
"uninstall_confirm": "Вы уверены, что хотите продолжить?",
|
|
328
|
+
"uninstall_cancelled": "Удаление отменено",
|
|
329
|
+
"uninstall_processing": "Удаление fuck-u-code...",
|
|
330
|
+
"uninstall_removed_config": "Удален глобальный файл конфигурации",
|
|
331
|
+
"uninstall_no_config": "Глобальный файл конфигурации не найден",
|
|
332
|
+
"uninstall_removed_claude": "Удалена запись MCP из Claude Code",
|
|
333
|
+
"uninstall_no_claude": "Запись MCP в Claude Code не найдена",
|
|
334
|
+
"uninstall_removed_cursor": "Удалена запись MCP из Cursor",
|
|
335
|
+
"uninstall_no_cursor": "Запись MCP в Cursor не найдена",
|
|
336
|
+
"uninstall_removed_npm": "Удален глобальный npm-пакет",
|
|
337
|
+
"uninstall_no_npm": "Глобальный npm-пакет не найден",
|
|
338
|
+
"uninstall_complete": "✓ Удаление завершено. До свидания!",
|
|
339
|
+
"cmd_update_description": "Обновить eff-u-code до последней версии",
|
|
340
|
+
"cmd_update_example": "Обновить до последней версии",
|
|
341
|
+
"update_checking": "Проверка обновлений...",
|
|
342
|
+
"update_current_version": "Текущая версия",
|
|
343
|
+
"update_latest_version": "Последняя версия",
|
|
344
|
+
"update_already_latest": "Уже установлена последняя версия",
|
|
345
|
+
"update_updating": "Обновление eff-u-code...",
|
|
346
|
+
"update_success": "Обновление успешно!",
|
|
347
|
+
"update_updated_to": "Обновлено до версии",
|
|
348
|
+
"update_failed": "Обновление не удалось"
|
|
320
349
|
}
|
|
@@ -19,11 +19,11 @@
|
|
|
19
19
|
"report_metrics_details": "评分指标详情",
|
|
20
20
|
"report_worst_files": "最屎代码排行榜",
|
|
21
21
|
"report_conclusion": "诊断结论",
|
|
22
|
-
"report_file_score": "
|
|
22
|
+
"report_file_score": "糟糕指数: {score}",
|
|
23
23
|
"report_more_issues": "...还有 {count} 个问题实在太屎,列不完了",
|
|
24
24
|
"report_score_calc": "评分计算",
|
|
25
25
|
"report_no_issues": "恭喜!没有特别多问题的文件!",
|
|
26
|
-
"overallScore": "
|
|
26
|
+
"overallScore": "糟糕指数",
|
|
27
27
|
"worstFiles": "最屎代码排行榜",
|
|
28
28
|
"metricsSummary": "指标摘要",
|
|
29
29
|
"file": "文件",
|
|
@@ -316,5 +316,34 @@
|
|
|
316
316
|
"mcp_config_updated": "MCP Server 配置已更新至 {path}",
|
|
317
317
|
"mcp_unknown_target": "未知目标:{target}。支持:claude, cursor",
|
|
318
318
|
"mcp_install_example_claude": "配置到 Claude Code",
|
|
319
|
-
"mcp_install_example_cursor": "配置到 Cursor"
|
|
319
|
+
"mcp_install_example_cursor": "配置到 Cursor",
|
|
320
|
+
"cmd_uninstall_description": "从本地系统移除 fuck-u-code",
|
|
321
|
+
"uninstall_example": "清理所有本地文件",
|
|
322
|
+
"uninstall_warning": "⚠️ 这将从您的系统中移除 fuck-u-code",
|
|
323
|
+
"uninstall_items": "以下内容将被删除:",
|
|
324
|
+
"uninstall_item_config": "全局配置文件 (~/.fuckucoderc.json)",
|
|
325
|
+
"uninstall_item_mcp": "MCP 服务器配置 (Claude Code, Cursor)",
|
|
326
|
+
"uninstall_item_npm": "全局 npm 包 (eff-u-code)",
|
|
327
|
+
"uninstall_confirm": "确定要继续吗?",
|
|
328
|
+
"uninstall_cancelled": "已取消卸载",
|
|
329
|
+
"uninstall_processing": "正在移除 fuck-u-code...",
|
|
330
|
+
"uninstall_removed_config": "已删除全局配置文件",
|
|
331
|
+
"uninstall_no_config": "未找到全局配置文件",
|
|
332
|
+
"uninstall_removed_claude": "已从 Claude Code 移除 MCP 配置",
|
|
333
|
+
"uninstall_no_claude": "Claude Code 中无 MCP 配置",
|
|
334
|
+
"uninstall_removed_cursor": "已从 Cursor 移除 MCP 配置",
|
|
335
|
+
"uninstall_no_cursor": "Cursor 中无 MCP 配置",
|
|
336
|
+
"uninstall_removed_npm": "已卸载全局 npm 包",
|
|
337
|
+
"uninstall_no_npm": "未找到全局 npm 包",
|
|
338
|
+
"uninstall_complete": "✓ 卸载完成。再见!",
|
|
339
|
+
"cmd_update_description": "更新 eff-u-code 到最新版本",
|
|
340
|
+
"cmd_update_example": "更新到最新版本",
|
|
341
|
+
"update_checking": "正在检查更新...",
|
|
342
|
+
"update_current_version": "当前版本",
|
|
343
|
+
"update_latest_version": "最新版本",
|
|
344
|
+
"update_already_latest": "已经是最新版本",
|
|
345
|
+
"update_updating": "正在更新 eff-u-code...",
|
|
346
|
+
"update_success": "更新成功!",
|
|
347
|
+
"update_updated_to": "已更新到版本",
|
|
348
|
+
"update_failed": "更新失败"
|
|
320
349
|
}
|
package/dist/mcp/server.js
CHANGED
|
@@ -15,9 +15,10 @@ import { createAIManager } from '../ai/index.js';
|
|
|
15
15
|
import { MarkdownOutput } from '../cli/output/markdown.js';
|
|
16
16
|
import { JsonOutput } from '../cli/output/json.js';
|
|
17
17
|
import { setLocale } from '../i18n/index.js';
|
|
18
|
+
import { VERSION } from '../version.js';
|
|
18
19
|
const server = new McpServer({
|
|
19
20
|
name: 'fuck-u-code',
|
|
20
|
-
version:
|
|
21
|
+
version: VERSION,
|
|
21
22
|
});
|
|
22
23
|
/**
|
|
23
24
|
* Build a RuntimeConfig from MCP tool parameters.
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAe,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,19 +7,17 @@
|
|
|
7
7
|
* - Breaks in linear flow (continue, break, goto)
|
|
8
8
|
* - Recursion
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* - 9-15: Moderate cognitive load
|
|
13
|
-
* - 16-25: High cognitive load
|
|
14
|
-
* - 25+: Very high cognitive load
|
|
10
|
+
* Language-specific thresholds based on official linter defaults.
|
|
11
|
+
* See src/metrics/thresholds/language-thresholds.ts for sources.
|
|
15
12
|
*/
|
|
16
13
|
import type { Metric, MetricResult, MetricCategory } from '../types.js';
|
|
17
|
-
import type { ParseResult } from '../../parser/types.js';
|
|
14
|
+
import type { ParseResult, Language } from '../../parser/types.js';
|
|
18
15
|
export declare class CognitiveComplexityMetric implements Metric {
|
|
19
16
|
readonly name = "cognitive_complexity";
|
|
20
17
|
readonly category: MetricCategory;
|
|
21
18
|
readonly weight: number;
|
|
22
|
-
|
|
19
|
+
private readonly language;
|
|
20
|
+
constructor(weight: number, language: Language);
|
|
23
21
|
calculate(parseResult: ParseResult): MetricResult;
|
|
24
22
|
}
|
|
25
23
|
//# sourceMappingURL=cognitive.d.ts.map
|