@@ -14,16 +14,26 @@ module.exports = function(content) {
14
14
var imports = extractImports ( tree ) ;
15
15
16
16
imports . forEach ( function ( imp ) {
17
- result . push ( "require(" + JSON . stringify ( __filename ) + " + \"!\" + " + JSON . stringify ( imp . url ) + ")" ) ;
17
+ if ( imp . media . length > 0 ) {
18
+ result . push ( JSON . stringify ( "@media " + imp . media . join ( "" ) + "{" ) ) ;
19
+ }
20
+ result . push ( "require(" + JSON . stringify ( __filename ) + " + \"!\" + " + JSON . stringify ( urlToRequire ( imp . url ) ) + ")" ) ;
21
+ if ( imp . media . length > 0 ) {
22
+ result . push ( JSON . stringify ( "}" ) ) ;
23
+ }
18
24
} ) ;
19
25
20
26
result . push ( JSON . stringify ( csso . translate ( tree ) ) ) ;
21
- console . dir ( result ) ;
22
27
return "module.exports =\n\t" + result . join ( " +\n\t" ) + ";" ;
23
28
}
24
29
30
+ function urlToRequire ( url ) {
31
+ if ( / ^ ~ / . test ( url ) )
32
+ return url . substring ( 1 ) ;
33
+ else
34
+ return "./" + url ;
35
+ }
25
36
function extractImports ( tree ) {
26
- console . dir ( tree ) ;
27
37
var results = [ ] ;
28
38
var removes = [ ] ;
29
39
for ( var i = 1 ; i < tree . length ; i ++ ) {
@@ -43,9 +53,14 @@ function extractImports(tree) {
43
53
} else if ( item [ 0 ] === "uri" ) {
44
54
imp . url = item [ 1 ] [ 0 ] === "string" ? JSON . parse ( item [ 1 ] [ 1 ] ) : item [ 1 ] [ 1 ] ;
45
55
} else if ( item [ 0 ] === "ident" && item [ 1 ] !== "url" ) {
46
- imp . media . push ( item [ 1 ] ) ;
56
+ imp . media . push ( csso . translate ( item ) ) ;
57
+ } else if ( item [ 0 ] !== "s" || imp . media . length > 0 ) {
58
+ imp . media . push ( csso . translate ( item ) ) ;
47
59
}
48
60
}
61
+ while ( imp . media . length > 0 &&
62
+ / ^ \s * $ / . test ( imp . media [ imp . media . length - 1 ] ) )
63
+ imp . media . pop ( ) ;
49
64
if ( imp . url !== null ) {
50
65
results . push ( imp ) ;
51
66
removes . push ( i ) ;
0 commit comments