@@ -6,11 +6,47 @@ Object.defineProperty(exports, '__esModule', {
66
77function _interopRequireDefault ( obj ) { return obj && obj . __esModule ? obj : { 'default' : obj } ; }
88
9+ function _slicedToArray ( arr , i ) { if ( Array . isArray ( arr ) ) { return arr ; } else if ( Symbol . iterator in Object ( arr ) ) { var _arr = [ ] ; var _n = true ; var _d = false ; var _e = undefined ; try { for ( var _i = arr [ Symbol . iterator ] ( ) , _s ; ! ( _n = ( _s = _i . next ( ) ) . done ) ; _n = true ) { _arr . push ( _s . value ) ; if ( i && _arr . length === i ) break ; } } catch ( err ) { _d = true ; _e = err ; } finally { try { if ( ! _n && _i [ 'return' ] ) _i [ 'return' ] ( ) ; } finally { if ( _d ) throw _e ; } } return _arr ; } else { throw new TypeError ( 'Invalid attempt to destructure non-iterable instance' ) ; } }
10+
911var _postcss = require ( 'postcss' ) ;
1012
1113var _postcss2 = _interopRequireDefault ( _postcss ) ;
1214
13- var processor = function processor ( css , result ) { } ;
15+ var declWhitelist = [ 'extends' ] ,
16+ declFilter = new RegExp ( '^(' + declWhitelist . join ( '|' ) + ')$' ) ,
17+ matchImports = / ^ ( [ \w ] + ) f r o m " ( [ ^ " ] + ) " $ / ;
18+
19+ var processor = function processor ( css , result ) {
20+ var imports = { } ;
21+ css . eachDecl ( declFilter , function ( decl ) {
22+ var matches = decl . value . match ( matchImports ) ;
23+ if ( matches ) {
24+ ( function ( ) {
25+ var _matches = _slicedToArray ( matches , 3 ) ;
26+
27+ var _ = _matches [ 0 ] ;
28+ var symbols = _matches [ 1 ] ;
29+ var path = _matches [ 2 ] ;
30+
31+ imports [ path ] = imports [ path ] || { } ;
32+ var tmpSymbols = symbols . split ( ' ' ) . map ( function ( s ) {
33+ return imports [ path ] [ s ] = '__tmp-' + processor . getRandomStr ( ) ;
34+ } ) ;
35+ decl . value = tmpSymbols . join ( ' ' ) ;
36+ } ) ( ) ;
37+ }
38+ } ) ;
39+ Object . keys ( imports ) . forEach ( function ( path ) {
40+ var pathImports = imports [ path ] ;
41+ console . log ( pathImports ) ;
42+ css . prepend ( _postcss2 [ 'default' ] . rule ( {
43+ selector : ':import("' + path + '")' ,
44+ nodes : Object . keys ( pathImports ) . map ( function ( importedSymbol ) {
45+ return _postcss2 [ 'default' ] . decl ( { prop : importedSymbol , value : pathImports [ importedSymbol ] } ) ;
46+ } )
47+ } ) ) ;
48+ } ) ;
49+ } ;
1450
1551processor . defaultRandomStr = function ( ) {
1652 return Math . random ( ) . toString ( 36 ) . substr ( 2 , 8 ) ;
0 commit comments