Skip to content

Commit 3aa595b

Browse files
committed
Update dependencies and practies
1 parent 8eaab00 commit 3aa595b

5 files changed

Lines changed: 638 additions & 359 deletions

File tree

.github/workflows/test.yml

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ jobs:
1212
runs-on: ubuntu-latest
1313
steps:
1414
- name: Checkout the repository
15-
uses: actions/checkout@v3
15+
uses: actions/checkout@v4
1616
- name: Install pnpm
1717
uses: pnpm/action-setup@v2
1818
with:
19-
version: latest
19+
version: 8
2020
- name: Install Node.js
2121
uses: actions/setup-node@v3
2222
with:
23-
node-version: 19
23+
node-version: 20
2424
cache: pnpm
2525
- name: Install dependencies
2626
run: pnpm install --frozen-lockfile --ignore-scripts
@@ -33,15 +33,14 @@ jobs:
3333
node-version:
3434
- 18
3535
- 16
36-
- 14
3736
name: Node.js ${{ matrix.node-version }} Quick
3837
steps:
3938
- name: Checkout the repository
40-
uses: actions/checkout@v3
39+
uses: actions/checkout@v4
4140
- name: Install pnpm
4241
uses: pnpm/action-setup@v2
4342
with:
44-
version: latest
43+
version: 8
4544
- name: Install Node.js ${{ matrix.node-version }}
4645
uses: actions/setup-node@v3
4746
with:
@@ -53,22 +52,26 @@ jobs:
5352
run: pnpm unit
5453
old:
5554
runs-on: ubuntu-latest
56-
name: Node.js 12 Quick
55+
strategy:
56+
matrix:
57+
node-version:
58+
- 14
59+
- 12
60+
name: Node.js ${{ matrix.node-version }} Quick
5761
steps:
5862
- name: Checkout the repository
59-
uses: actions/checkout@v3
63+
uses: actions/checkout@v4
6064
- name: Install pnpm
6165
uses: pnpm/action-setup@v2
6266
with:
6367
version: 6
6468
env:
6569
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
66-
- name: Install Node.js 12
70+
- name: Install Node.js ${{ matrix.node-version }}
6771
uses: actions/setup-node@v3
6872
with:
69-
node-version: 12
73+
node-version: ${{ matrix.node-version }}
7074
- name: Install dependencies
71-
run: pnpm install --frozen-lockfile --ignore-scripts
75+
run: pnpm install --no-frozen-lockfile --ignore-scripts
7276
- name: Run unit tests
7377
run: pnpm unit
74-

index.js

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { Rule, AtRule } = require('postcss')
1+
const { AtRule, Rule } = require('postcss')
22
let parser = require('postcss-selector-parser')
33

44
/**
@@ -118,8 +118,8 @@ function createFnAtruleChilds(bubble) {
118118

119119
function pickDeclarations(selector, declarations, after) {
120120
let parent = new Rule({
121-
selector,
122-
nodes: []
121+
nodes: [],
122+
selector
123123
})
124124
parent.append(declarations)
125125
after.after(parent)
@@ -143,7 +143,7 @@ function parseRootRuleParams(params) {
143143
params = params.trim()
144144
let braceBlock = params.match(/^\((.*)\)$/)
145145
if (!braceBlock) {
146-
return { type: 'basic', selector: params }
146+
return { selector: params, type: 'basic' }
147147
}
148148
let bits = braceBlock[1].match(/^(with(?:out)?):(.+)$/)
149149
if (bits) {
@@ -165,8 +165,8 @@ function parseRootRuleParams(params) {
165165
}
166166

167167
return {
168-
type: 'withrules',
169-
escapes
168+
escapes,
169+
type: 'withrules'
170170
}
171171
}
172172
// Unrecognized brace block
@@ -250,14 +250,14 @@ const rootRuleEscapes = Symbol('rootRuleEscapes')
250250

251251
function normalizeRootRule(rule) {
252252
let { params } = rule
253-
let { type, selector, escapes } = parseRootRuleParams(params)
253+
let { escapes, selector, type } = parseRootRuleParams(params)
254254
if (type === 'unknown') {
255255
throw rule.error(
256256
`Unknown @${rule.name} parameter ${JSON.stringify(params)}`
257257
)
258258
}
259259
if (type === 'basic' && selector) {
260-
let selectorBlock = new Rule({ selector, nodes: rule.nodes })
260+
let selectorBlock = new Rule({ nodes: rule.nodes, selector })
261261
rule.removeAll()
262262
rule.append(selectorBlock)
263263
}
@@ -287,15 +287,22 @@ module.exports = (opts = {}) => {
287287
let preserveEmpty = opts.preserveEmpty
288288

289289
return {
290-
postcssPlugin: 'postcss-nested',
291-
292290
Once(root) {
293291
root.walkAtRules(rootRuleName, node => {
294292
normalizeRootRule(node)
295293
root[hasRootRule] = true
296294
})
297295
},
298296

297+
postcssPlugin: 'postcss-nested',
298+
299+
RootExit(root) {
300+
if (root[hasRootRule]) {
301+
root.walkAtRules(rootRuleName, unwrapRootRule)
302+
root[hasRootRule] = false
303+
}
304+
},
305+
299306
Rule(rule) {
300307
let unwrapped = false
301308
let after = rule
@@ -348,13 +355,6 @@ module.exports = (opts = {}) => {
348355
rule.raws.semicolon = true
349356
if (rule.nodes.length === 0) rule.remove()
350357
}
351-
},
352-
353-
RootExit(root) {
354-
if (root[hasRootRule]) {
355-
root.walkAtRules(rootRuleName, unwrapRootRule)
356-
root[hasRootRule] = false
357-
}
358358
}
359359
}
360360
}

index.test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -676,12 +676,12 @@ test('works with other visitors', () => {
676676
let css = 'a{b{color:red}@mixin;}'
677677
let mixinPlugin = () => {
678678
return {
679-
postcssPlugin: 'mixin',
680679
AtRule: {
681680
mixin(node) {
682681
node.replaceWith('.in{.deep{color:blue}}')
683682
}
684-
}
683+
},
684+
postcssPlugin: 'mixin'
685685
}
686686
}
687687
mixinPlugin.postcss = true
@@ -695,12 +695,12 @@ test('works with other visitors #2', () => {
695695
let css = 'a { @mixin; b {color:red} }'
696696
let mixinPlugin = () => {
697697
return {
698-
postcssPlugin: 'mixin',
699698
AtRule: {
700699
mixin(node) {
701700
node.replaceWith('.in { .deep {color:blue} }')
702701
}
703-
}
702+
},
703+
postcssPlugin: 'mixin'
704704
}
705705
}
706706
mixinPlugin.postcss = true

package.json

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
],
1212
"scripts": {
1313
"unit": "uvu . '\\.test\\.js$'",
14-
"test": "c8 pnpm unit && eslint ."
14+
"test:coverage": "c8 pnpm unit",
15+
"test:lint": "eslint .",
16+
"test": "pnpm run /^test:/"
1517
},
1618
"author": "Andrey Sitnik <[email protected]>",
1719
"license": "MIT",
@@ -33,19 +35,21 @@
3335
"postcss": "^8.2.14"
3436
},
3537
"dependencies": {
36-
"postcss-selector-parser": "^6.0.11"
38+
"postcss-selector-parser": "^6.0.13"
3739
},
3840
"devDependencies": {
39-
"@logux/eslint-config": "^49.0.0",
40-
"c8": "^7.13.0",
41-
"clean-publish": "^4.1.1",
42-
"eslint": "^8.36.0",
43-
"eslint-config-standard": "^17.0.0",
44-
"eslint-plugin-import": "^2.27.5",
45-
"eslint-plugin-n": "^15.6.1",
41+
"@logux/eslint-config": "^52.0.1",
42+
"c8": "^8.0.1",
43+
"clean-publish": "^4.2.0",
44+
"eslint": "^8.51.0",
45+
"eslint-config-standard": "^17.1.0",
46+
"eslint-plugin-import": "^2.28.1",
47+
"eslint-plugin-n": "^16.1.0",
48+
"eslint-plugin-node-import": "^1.0.4",
49+
"eslint-plugin-perfectionist": "^2.1.0",
4650
"eslint-plugin-prefer-let": "^3.0.1",
4751
"eslint-plugin-promise": "^6.1.1",
48-
"postcss": "^8.4.21",
52+
"postcss": "^8.4.31",
4953
"uvu": "^0.5.6"
5054
},
5155
"prettier": {

0 commit comments

Comments
 (0)