@code-pushup/eslint-plugin 0.121.0 → 0.122.1
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/package.json +3 -3
- package/src/lib/binding.d.ts +1 -1
- package/src/lib/binding.js +30 -43
- package/src/lib/binding.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/eslint-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.122.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Code PushUp plugin for detecting problems in source code using ESLint.📋",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-eslint#readme",
|
|
@@ -40,8 +40,8 @@
|
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"ansis": "^3.3.2",
|
|
42
42
|
"glob": "^11.0.0",
|
|
43
|
-
"@code-pushup/utils": "0.
|
|
44
|
-
"@code-pushup/models": "0.
|
|
43
|
+
"@code-pushup/utils": "0.122.1",
|
|
44
|
+
"@code-pushup/models": "0.122.1",
|
|
45
45
|
"zod": "^4.2.1"
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
package/src/lib/binding.d.ts
CHANGED
package/src/lib/binding.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readdir } from 'node:fs/promises';
|
|
2
2
|
import { createRequire } from 'node:module';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { directoryExists, hasDependency, readJsonFile, singleQuote, } from '@code-pushup/utils';
|
|
4
|
+
import { answerArray, answerBoolean, answerString, directoryExists, hasDependency, readJsonFile, singleQuote, } from '@code-pushup/utils';
|
|
5
5
|
import { DEFAULT_PATTERN, ESLINT_PLUGIN_SLUG, ESLINT_PLUGIN_TITLE, } from './constants.js';
|
|
6
6
|
const { name: PACKAGE_NAME } = createRequire(import.meta.url)('../../package.json');
|
|
7
7
|
const ESLINT_CONFIG_PATTERN = /^(\.eslintrc(\.\w+)?|eslint\.config\.\w+)$/;
|
|
@@ -55,31 +55,44 @@ export const eslintSetupBinding = {
|
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
key: 'eslint.categories',
|
|
58
|
-
message: 'Add
|
|
58
|
+
message: 'Add ESLint categories?',
|
|
59
59
|
type: 'confirm',
|
|
60
60
|
default: true,
|
|
61
61
|
},
|
|
62
62
|
],
|
|
63
63
|
generateConfig: (answers) => {
|
|
64
|
-
const
|
|
65
|
-
const args = [
|
|
66
|
-
resolveEslintrc(answers['eslint.eslintrc']),
|
|
67
|
-
resolvePatterns(answers['eslint.patterns']),
|
|
68
|
-
].filter(Boolean);
|
|
64
|
+
const options = parseAnswers(answers);
|
|
69
65
|
return {
|
|
70
66
|
imports: [
|
|
71
67
|
{ moduleSpecifier: PACKAGE_NAME, defaultImport: 'eslintPlugin' },
|
|
72
68
|
],
|
|
73
|
-
pluginInit:
|
|
74
|
-
|
|
75
|
-
: 'await eslintPlugin()',
|
|
76
|
-
...(withCategories ? { categories: ESLINT_CATEGORIES } : {}),
|
|
69
|
+
pluginInit: formatPluginInit(options),
|
|
70
|
+
...(options.categories ? { categories: ESLINT_CATEGORIES } : {}),
|
|
77
71
|
};
|
|
78
72
|
},
|
|
79
73
|
};
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
function parseAnswers(answers) {
|
|
75
|
+
return {
|
|
76
|
+
eslintrc: answerString(answers, 'eslint.eslintrc'),
|
|
77
|
+
patterns: answerArray(answers, 'eslint.patterns'),
|
|
78
|
+
categories: answerBoolean(answers, 'eslint.categories'),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function formatPluginInit({ eslintrc, patterns }) {
|
|
82
|
+
const useCustomEslintrc = eslintrc !== '' && !ESLINT_CONFIG_PATTERN.test(eslintrc);
|
|
83
|
+
const customPatterns = patterns
|
|
84
|
+
.filter(s => s !== '' && s !== DEFAULT_PATTERN)
|
|
85
|
+
.map(singleQuote);
|
|
86
|
+
const body = [
|
|
87
|
+
useCustomEslintrc ? `eslintrc: ${singleQuote(eslintrc)}` : '',
|
|
88
|
+
customPatterns.length === 1 ? `patterns: ${customPatterns[0]}` : '',
|
|
89
|
+
customPatterns.length > 1 ? `patterns: [${customPatterns.join(', ')}]` : '',
|
|
90
|
+
]
|
|
91
|
+
.filter(Boolean)
|
|
92
|
+
.join(', ');
|
|
93
|
+
return body
|
|
94
|
+
? [`await eslintPlugin({ ${body} }),`]
|
|
95
|
+
: ['await eslintPlugin(),'];
|
|
83
96
|
}
|
|
84
97
|
async function isRecommended(targetDir) {
|
|
85
98
|
if (await detectEslintConfig(targetDir)) {
|
|
@@ -93,34 +106,8 @@ async function isRecommended(targetDir) {
|
|
|
93
106
|
return false;
|
|
94
107
|
}
|
|
95
108
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return '';
|
|
100
|
-
}
|
|
101
|
-
if (ESLINT_CONFIG_PATTERN.test(value)) {
|
|
102
|
-
return '';
|
|
103
|
-
}
|
|
104
|
-
return `eslintrc: ${singleQuote(value)}`;
|
|
105
|
-
}
|
|
106
|
-
/** Formats patterns as a string or array literal, omitting the plugin default. */
|
|
107
|
-
function resolvePatterns(value) {
|
|
108
|
-
if (typeof value === 'string') {
|
|
109
|
-
return resolvePatterns(value.split(','));
|
|
110
|
-
}
|
|
111
|
-
if (!Array.isArray(value)) {
|
|
112
|
-
return '';
|
|
113
|
-
}
|
|
114
|
-
const patterns = value
|
|
115
|
-
.map(s => s.trim())
|
|
116
|
-
.filter(s => s !== '' && s !== DEFAULT_PATTERN)
|
|
117
|
-
.map(singleQuote);
|
|
118
|
-
if (patterns.length === 0) {
|
|
119
|
-
return '';
|
|
120
|
-
}
|
|
121
|
-
if (patterns.length === 1) {
|
|
122
|
-
return `patterns: ${patterns.join('')}`;
|
|
123
|
-
}
|
|
124
|
-
return `patterns: [${patterns.join(', ')}]`;
|
|
109
|
+
async function detectEslintConfig(targetDir) {
|
|
110
|
+
const files = await readdir(targetDir, { encoding: 'utf8' });
|
|
111
|
+
return files.find(file => ESLINT_CONFIG_PATTERN.test(file));
|
|
125
112
|
}
|
|
126
113
|
//# sourceMappingURL=binding.js.map
|
package/src/lib/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../src/lib/binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAM7B,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAExB,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAC3D,oBAAoB,CACkB,CAAC;AAEzC,MAAM,qBAAqB,GAAG,4CAA4C,CAAC;AAE3E,MAAM,iBAAiB,GAAqB;IAC1C;QACE,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,kBAAkB;gBAC1B,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,CAAC;aACV;SACF;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,YAAY;QACnB,WAAW,EACT,0EAA0E;QAC5E,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,kBAAkB;gBAC1B,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE,CAAC;aACV;SACF;KACF;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../../../src/lib/binding.ts"],"names":[],"mappings":"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"}
|