@@ -12,29 +12,28 @@ const getDeclsObject = rule => {
12
12
return object
13
13
}
14
14
15
- export const extractICSSImports = css => {
15
+ export const extractICSS = css => {
16
16
const imports = { }
17
- css . walkRules ( rule => {
18
- const matches = importPattern . exec ( rule . selector )
19
- if ( matches ) {
20
- const path = matches [ 1 ]
21
- imports [ path ] = Object . assign ( { } , imports [ path ] , getDeclsObject ( rule ) )
22
- rule . remove ( )
23
- }
24
- } )
25
- return imports
26
- }
27
-
28
- export const extractICSSExports = css => {
29
17
const exports = { }
30
- css . walkRules ( exportPattern , rule => {
31
- Object . assign ( exports , getDeclsObject ( rule ) )
32
- rule . remove ( )
18
+ css . each ( node => {
19
+ if ( node . type === 'rule' ) {
20
+ const matches = importPattern . exec ( node . selector )
21
+ if ( matches ) {
22
+ const path = matches [ 1 ]
23
+ const aliases = Object . assign ( { } , imports [ path ] , getDeclsObject ( node ) )
24
+ imports [ path ] = aliases
25
+ node . remove ( )
26
+ }
27
+ if ( exportPattern . test ( node . selector ) ) {
28
+ Object . assign ( exports , getDeclsObject ( node ) )
29
+ node . remove ( )
30
+ }
31
+ }
33
32
} )
34
- return exports
33
+ return { imports , exports }
35
34
}
36
35
37
- const genICSSImportsRules = imports => {
36
+ const createICSSImportsRules = imports => {
38
37
return Object . keys ( imports ) . map ( path => {
39
38
const aliases = imports [ path ]
40
39
const declarations = Object . keys ( aliases ) . map ( key =>
@@ -53,7 +52,7 @@ const genICSSImportsRules = imports => {
53
52
} )
54
53
}
55
54
56
- const genICSSExportsRule = exports => {
55
+ const createICSSExportsRule = exports => {
57
56
const declarations = Object . keys ( exports ) . map ( key =>
58
57
postcss . decl ( {
59
58
prop : key ,
@@ -69,7 +68,7 @@ const genICSSExportsRule = exports => {
69
68
. append ( declarations )
70
69
}
71
70
72
- export const genICSSRules = ( imports , exports ) => [
73
- ...genICSSImportsRules ( imports ) ,
74
- genICSSExportsRule ( exports )
71
+ export const createICSSRules = ( imports , exports ) => [
72
+ ...createICSSImportsRules ( imports ) ,
73
+ createICSSExportsRule ( exports )
75
74
]
0 commit comments