Skip to content

Commit 4b952cd

Browse files
authoredMar 24, 2025··
fix: Fix custom stylelint plugin causes knip crash (#1004)
1 parent c7cc382 commit 4b952cd

File tree

6 files changed

+12
-5
lines changed

6 files changed

+12
-5
lines changed
 

‎packages/knip/fixtures/plugins/stylelint/.stylelintrc

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
"files": [
1111
"**/*.html"
1212
],
13-
"extends": ["stylelint-config-html/html", "stylelint-config-standard"]
13+
"extends": ["stylelint-config-html/html", "stylelint-config-standard"],
14+
"plugins": ["stylelint-order"]
1415
}
1516
]
1617
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default {}

‎packages/knip/fixtures/plugins/stylelint2/stylelint.config.js

+5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
const less = require('postcss-less');
22
const stylus = require('postcss-styl');
3+
const myCustomPlugin = require('./myCustomPlugin');
34

45
/** @type {import('stylelint').Config} */
56
const config = {
67
customSyntax: less,
78
extends: [require.resolve('stylelint-config-recommended'), './myExtendableConfig'],
9+
plugins: ['./myCustomPlugin.js'],
810
rules: {
911
'alpha-value-notation': 'number',
1012
},
1113
overrides: [
14+
{
15+
plugins: ['./myCustomPlugin.js', myCustomPlugin],
16+
},
1217
{
1318
files: ['**/*.html'],
1419
extends: ['stylelint-config-html/html', 'stylelint-config-standard'],

‎packages/knip/src/plugins/stylelint/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const config = ['package.json', ...toCosmiconfig('stylelint')];
1616

1717
const resolve = (config: StyleLintConfig | BaseStyleLintConfig): Input[] => {
1818
const extend = config.extends ?? [];
19-
const plugins = config.plugins ?? [];
19+
const plugins = config.plugins?.flatMap(plugin => (typeof plugin === 'string' ? [plugin] : [])) ?? [];
2020
const customSyntax: string[] = typeof config.customSyntax === 'string' ? [config.customSyntax] : [];
2121

2222
const overrideConfigs = 'overrides' in config ? config.overrides.flatMap(resolve) : [];

‎packages/knip/src/plugins/stylelint/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export type BaseStyleLintConfig = {
22
customSyntax?: unknown;
33
extends?: string | string[];
4-
plugins?: string[];
4+
plugins?: unknown[];
55
};
66

77
export type StyleLintConfig = BaseStyleLintConfig & {

‎packages/knip/test/plugins/stylelint2.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ test('Find dependencies with the stylelint plugin (2)', async () => {
1515

1616
assert.deepEqual(counters, {
1717
...baseCounters,
18-
processed: 4,
19-
total: 4,
18+
processed: 5,
19+
total: 5,
2020
});
2121
});

0 commit comments

Comments
 (0)
Please sign in to comment.