1- const { Rule , AtRule } = require ( 'postcss' )
1+ const { AtRule , Rule } = require ( 'postcss' )
22let parser = require ( 'postcss-selector-parser' )
33
44/**
@@ -118,8 +118,8 @@ function createFnAtruleChilds(bubble) {
118118
119119function 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 ( / ^ ( w i t h (?: o u t ) ? ) : ( .+ ) $ / )
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
251251function 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}
0 commit comments