@@ -2,7 +2,6 @@ const postcss = require('postcss');
2
2
const parser = require ( 'postcss-selector-parser' ) ;
3
3
const { name} = require ( '../package.json' ) ;
4
4
5
-
6
5
/**
7
6
* Ensure that attributes with different quotes match.
8
7
* @param {Object } selector - postcss selector node
@@ -32,6 +31,8 @@ function sortGroups(selector) {
32
31
return a . value < b . value ? - 1 : 1 ;
33
32
} ) ;
34
33
} ) ;
34
+
35
+ selector . sort ( ( a , b ) => ( a . nodes . join ( '' ) < b . nodes . join ( '' ) ? - 1 : 1 ) ) ;
35
36
}
36
37
37
38
/**
@@ -50,12 +51,10 @@ function removeDupProperties(selector) {
50
51
}
51
52
}
52
53
53
- const uniformStyle = parser (
54
- ( selector ) => {
55
- normalizeAttributes ( selector ) ;
56
- sortGroups ( selector ) ;
57
- }
58
- ) ;
54
+ const uniformStyle = parser ( ( selector ) => {
55
+ normalizeAttributes ( selector ) ;
56
+ sortGroups ( selector ) ;
57
+ } ) ;
59
58
60
59
const defaultOptions = {
61
60
removeDuplicatedProperties : false ,
@@ -74,25 +73,24 @@ module.exports = postcss.plugin(name, (options) => {
74
73
// Check selector parent for any at rule
75
74
if ( rule . parent . type === 'atrule' ) {
76
75
// Use name and query params as the key
77
- const query = rule . parent . name . toLowerCase ( )
78
- + rule . parent . params . replace ( / \s + / g, '' ) ;
76
+ const query =
77
+ rule . parent . name . toLowerCase ( ) +
78
+ rule . parent . params . replace ( / \s + / g, '' ) ;
79
79
80
80
// See if this query key is already in the map table
81
- map = mapTable . has ( query ) ?
82
- // If it is use it
83
- mapTable . get ( query ) :
84
- // if not set it and get it
85
- mapTable . set ( query , new Map ( ) ) . get ( query ) ;
81
+ map = mapTable . has ( query )
82
+ ? // If it is use it
83
+ mapTable . get ( query )
84
+ : // if not set it and get it
85
+ mapTable . set ( query , new Map ( ) ) . get ( query ) ;
86
86
} else {
87
87
// Otherwise we are dealing with a selector in the root
88
88
map = mapTable . get ( 'root' ) ;
89
89
}
90
90
91
- const selector = uniformStyle . processSync (
92
- rule . selector , {
93
- lossless : false ,
94
- }
95
- ) ;
91
+ const selector = uniformStyle . processSync ( rule . selector , {
92
+ lossless : false ,
93
+ } ) ;
96
94
97
95
if ( map . has ( selector ) ) {
98
96
// store original rule as destination
0 commit comments