@@ -122,13 +122,11 @@ const getMessages = aliases =>
122122 . map ( name => ( { plugin, type : "icss-scoped" , name, value : aliases [ name ] } ) )
123123 . reduce ( ( acc , msg ) => [ ...acc , msg ] , [ ] ) ;
124124
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 ) ;
132130
133131const getComposed = ( messages , name ) =>
134132 messages
@@ -149,21 +147,19 @@ module.exports = postcss.plugin(plugin, (options = {}) => (css, result) => {
149147 options . generateScopedName ||
150148 genericNames ( "[name]__[local]---[hash:base64:5]" ) ;
151149 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" ) ;
154150 const aliases = { } ;
155151 walkRules ( css , rule => {
156152 const getAlias = name => {
157153 if ( aliases [ name ] ) {
158154 return aliases [ name ] ;
159155 }
160156 // icss-value contract
161- if ( icssValue [ name ] ) {
157+ if ( isValue ( result . messages , name ) ) {
162158 return name ;
163159 }
164160 const alias = generateScopedName ( name , input . from , input . css ) ;
165161 // icss-scoped contract
166- if ( icssScoped [ name ] ) {
162+ if ( isRedeclared ( result . messages , name ) ) {
167163 result . warn ( `'${ name } ' already declared` , { node : rule } ) ;
168164 }
169165 aliases [ name ] = alias ;
0 commit comments