@@ -122,13 +122,11 @@ const getMessages = aliases =>
122
122
. map ( name => ( { plugin, type : "icss-scoped" , name, value : aliases [ name ] } ) )
123
123
. reduce ( ( acc , msg ) => [ ...acc , msg ] , [ ] ) ;
124
124
125
- const getContract = ( result , type , prop , value ) =>
126
- result . messages
127
- . filter ( msg => msg . type === type )
128
- . reduce (
129
- ( acc , msg ) => Object . assign ( { } , acc , { [ msg [ prop ] ] : msg [ value ] } ) ,
130
- { }
131
- ) ;
125
+ const isValue = ( messages , name ) =>
126
+ messages . find ( msg => msg . type === "icss-value" && msg . value === name ) ;
127
+
128
+ const isRedeclared = ( messages , name ) =>
129
+ messages . find ( msg => msg . type === "icss-scoped" && msg . name === name ) ;
132
130
133
131
const getComposed = ( messages , name ) =>
134
132
messages
@@ -149,21 +147,19 @@ module.exports = postcss.plugin(plugin, (options = {}) => (css, result) => {
149
147
options . generateScopedName ||
150
148
genericNames ( "[name]__[local]---[hash:base64:5]" ) ;
151
149
const input = ( css && css . source && css . source . input ) || { } ;
152
- const icssScoped = getContract ( result , "icss-scoped" , "name" , "value" ) ;
153
- const icssValue = getContract ( result , "icss-value" , "value" , "name" ) ;
154
150
const aliases = { } ;
155
151
walkRules ( css , rule => {
156
152
const getAlias = name => {
157
153
if ( aliases [ name ] ) {
158
154
return aliases [ name ] ;
159
155
}
160
156
// icss-value contract
161
- if ( icssValue [ name ] ) {
157
+ if ( isValue ( result . messages , name ) ) {
162
158
return name ;
163
159
}
164
160
const alias = generateScopedName ( name , input . from , input . css ) ;
165
161
// icss-scoped contract
166
- if ( icssScoped [ name ] ) {
162
+ if ( isRedeclared ( result . messages , name ) ) {
167
163
result . warn ( `'${ name } ' already declared` , { node : rule } ) ;
168
164
}
169
165
aliases [ name ] = alias ;
0 commit comments