@@ -101,68 +101,51 @@ const createGenerator = (i = 0) => name =>
101
101
module . exports = postcss . plugin ( plugin , ( ) => ( css , result ) => {
102
102
const { icssImports, icssExports } = extractICSS ( css ) ;
103
103
const getAliasName = createGenerator ( ) ;
104
+ const addExports = ( node , name , value ) => {
105
+ if ( isForbidden ( name ) ) {
106
+ result . warn ( `Dot and hash symbols are not allowed in value "${ name } "` , {
107
+ node
108
+ } ) ;
109
+ } else {
110
+ if ( icssExports [ name ] ) {
111
+ result . warn ( `"${ name } " value already declared` , { node } ) ;
112
+ }
113
+ }
114
+ icssExports [ name ] = replaceValueSymbols ( value , icssExports ) ;
115
+ } ;
104
116
105
- css . walkAtRules ( "value" , atRule => {
106
- if ( atRule . params . indexOf ( "@value" ) !== - 1 ) {
107
- result . warn ( `Invalid value definition "${ atRule . params } "` , {
108
- node : atRule
117
+ css . walkAtRules ( "value" , atrule => {
118
+ if ( atrule . params . indexOf ( "@value" ) !== - 1 ) {
119
+ result . warn ( `Invalid value definition "${ atrule . params } "` , {
120
+ node : atrule
109
121
} ) ;
110
122
} else {
111
- const parsed = parse ( atRule . params ) ;
123
+ const parsed = parse ( atrule . params ) ;
112
124
if ( parsed ) {
113
125
if ( parsed . type === "value" ) {
114
126
const { name, value } = parsed ;
115
- if ( isForbidden ( name ) ) {
116
- result . warn (
117
- `Dot and hash symbols are not allowed in value "${ name } "` ,
118
- { node : atRule }
119
- ) ;
120
- } else {
121
- if ( icssExports [ name ] ) {
122
- result . warn ( `"${ name } " value already declared` , {
123
- node : atRule
124
- } ) ;
125
- }
126
- icssExports [ name ] = replaceValueSymbols ( value , icssExports ) ;
127
- }
127
+ addExports ( atrule , name , value ) ;
128
128
}
129
129
if ( parsed . type === "import" ) {
130
- const pairs = parsed . pairs
131
- . filter ( ( [ , local ] ) => {
132
- if ( isForbidden ( local ) ) {
133
- result . warn (
134
- `Dot and hash symbols are not allowed in value "${ local } "`
135
- ) ;
136
- return false ;
137
- }
138
- return true ;
139
- } )
140
- . map ( ( [ imported , local ] ) => {
141
- const alias = getAliasName ( local ) ;
142
- if ( icssExports [ local ] ) {
143
- result . warn ( `"${ local } " value already declared` , {
144
- node : atRule
145
- } ) ;
146
- }
147
- icssExports [ local ] = alias ;
148
- return [ alias , imported ] ;
149
- } ) ;
150
- if ( pairs . length ) {
151
- const aliases = fromPairs ( pairs ) ;
152
- icssImports [ parsed . path ] = Object . assign (
153
- { } ,
154
- icssImports [ parsed . path ] ,
155
- aliases
156
- ) ;
157
- }
130
+ const pairs = parsed . pairs . map ( ( [ imported , local ] ) => {
131
+ const alias = getAliasName ( local ) ;
132
+ addExports ( atrule , local , alias ) ;
133
+ return [ alias , imported ] ;
134
+ } ) ;
135
+ const aliases = fromPairs ( pairs ) ;
136
+ icssImports [ parsed . path ] = Object . assign (
137
+ { } ,
138
+ icssImports [ parsed . path ] ,
139
+ aliases
140
+ ) ;
158
141
}
159
142
} else {
160
- result . warn ( `Invalid value definition "${ atRule . params } "` , {
161
- node : atRule
143
+ result . warn ( `Invalid value definition "${ atrule . params } "` , {
144
+ node : atrule
162
145
} ) ;
163
146
}
164
147
}
165
- atRule . remove ( ) ;
148
+ atrule . remove ( ) ;
166
149
} ) ;
167
150
168
151
replaceSymbols ( css , icssExports ) ;
0 commit comments