Skip to content

Commit 35ac519

Browse files
committed
Updates to support stylelint v16
- Set minimum stylelint version to be v16.0.0 - Set minimum node version to be 18.12.0 to match stylelint - Convert codebase to be pure esm - Drop running CI against unsupported node versions - 14 and 16.
1 parent 3793625 commit 35ac519

File tree

12 files changed

+192
-341
lines changed

12 files changed

+192
-341
lines changed
File renamed without changes.

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15-
stylelint-version: [15.x]
16-
node-version: [20.x, 18.x, 16.x, 14.x]
15+
stylelint-version: [16.x]
16+
node-version: [20.x, 18.x]
1717

1818
steps:
1919
- uses: actions/checkout@v4

index.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
const stylelint = require('stylelint');
2-
const {
3-
showInvisibles,
4-
generateDifferences,
5-
} = require('prettier-linter-helpers');
1+
import stylelint from 'stylelint';
2+
import {showInvisibles, generateDifferences} from 'prettier-linter-helpers';
63

74
const prettierPromise = import('prettier');
85

@@ -245,7 +242,7 @@ const ruleFunction = (expectation, options, context) => {
245242
ruleFunction.ruleName = ruleName;
246243
ruleFunction.messages = messages;
247244

248-
module.exports = stylelint.createPlugin(ruleName, ruleFunction);
245+
export default stylelint.createPlugin(ruleName, ruleFunction);
249246

250247
function omitStylelintSpecificOptions(options) {
251248
const prettierOptions = Object.assign({}, options);

jest-setup.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
const getTestRule = require('jest-preset-stylelint/getTestRule');
1+
import {getTestRule} from 'jest-preset-stylelint';
22

33
global.testRule = getTestRule({plugins: ['./']});

package.json

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
"README.md",
1515
"LICENSE.md"
1616
],
17-
"main": "index.js",
17+
"type": "module",
18+
"exports": {
19+
".": "./index.js",
20+
"./recommended": "./recommended.js"
21+
},
1822
"scripts": {
1923
"lint": "eslint .",
2024
"test": "yarn run lint && node --experimental-vm-modules node_modules/jest/bin/jest.js",
@@ -33,15 +37,15 @@
3337
},
3438
"peerDependencies": {
3539
"prettier": ">=3.0.0",
36-
"stylelint": ">=15.8.0"
40+
"stylelint": ">=16.0.0"
3741
},
3842
"devDependencies": {
3943
"eslint": "^8.44.0",
4044
"eslint-config-prettier": "^9.0.0",
4145
"eslint-plugin-n": "^15.7.0",
4246
"eslint-plugin-prettier": "^5.0.0",
4347
"jest": "^29.6.1",
44-
"jest-preset-stylelint": "^6.3.2",
48+
"jest-preset-stylelint": "^7.0.0",
4549
"postcss": "^8.4.25",
4650
"postcss-html": "^1.5.0",
4751
"postcss-markdown": "^1.2.0",
@@ -52,12 +56,12 @@
5256
"prettier-plugin-astro": "^0.12.1",
5357
"prettier-plugin-svelte": "^3.0.0",
5458
"strip-ansi": "^6.0.0",
55-
"stylelint": "^15.8.0",
59+
"stylelint": "^16.0.1",
5660
"svelte": "^4.1.0",
5761
"typescript": "5.3.2"
5862
},
5963
"engines": {
60-
"node": "^14.17.0 || >=16.0.0"
64+
"node": ">=18.12.0"
6165
},
6266
"jest": {
6367
"preset": "jest-preset-stylelint",

recommended.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = {
1+
export default {
22
plugins: ['.'],
33
rules: {'prettier/prettier': true},
44
};

test/fixtures/check.inert.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const styled = require('styled-components');
1+
import styled from 'styled-components';
22

33
const Button = styled.div`
44
background-image: url("x");

test/fixtures/check.unparsable.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const styled = require('styled-components');
1+
import styled from 'styled-components';
22

33
const But{ton = styled.div`
44
background-image: url("x");

test/fixtures/stylelint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
module.exports = {
1+
export default {
22
plugins: ['../..'],
33
rules: {
44
'prettier/prettier': [

test/stylelint-prettier-e2e.test.js

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
const {spawnSync} = require('child_process');
2-
const {resolve} = require('path');
3-
const stripAnsi = require('strip-ansi');
1+
import {spawnSync} from 'node:child_process';
2+
import {resolve, dirname} from 'node:path';
3+
import {fileURLToPath} from 'node:url';
4+
import stripAnsi from 'strip-ansi';
5+
6+
const __dirname = dirname(fileURLToPath(import.meta.url));
47

58
/**
69
* Tests that report errors in multiple files may change the order of the files
@@ -19,8 +22,8 @@ check.invalid.css
1922
1 problem (1 error, 0 warnings)
2023
`.trim();
2124

22-
expect(result.output).toEqual(expectedResult);
23-
expect(result.error).toEqual('');
25+
expect(result.output).toEqual('');
26+
expect(result.error).toEqual(expectedResult);
2427
expect(result.status).toEqual(2);
2528
});
2629

@@ -35,8 +38,8 @@ check.invalid.scss
3538
2 problems (2 errors, 0 warnings)
3639
`.trim();
3740

38-
expect(result.output).toEqual(expectedResult);
39-
expect(result.error).toEqual('');
41+
expect(result.output).toEqual('');
42+
expect(result.error).toEqual(expectedResult);
4043
expect(result.status).toEqual(2);
4144
});
4245

@@ -49,8 +52,8 @@ check.invalid.scss
4952

5053
const expectedResult = ``;
5154

52-
expect(result.output).toEqual(expectedResult);
53-
expect(result.error).toEqual('');
55+
expect(result.output).toEqual('');
56+
expect(result.error).toEqual(expectedResult);
5457
expect(result.status).toEqual(0);
5558
});
5659

@@ -63,8 +66,8 @@ check.invalid.scss
6366

6467
const expectedResult = ``;
6568

66-
expect(result.output).toEqual(expectedResult);
67-
expect(result.error).toEqual('');
69+
expect(result.output).toEqual('');
70+
expect(result.error).toEqual(expectedResult);
6871
expect(result.status).toEqual(0);
6972
});
7073
});

0 commit comments

Comments
 (0)