@@ -19,21 +19,31 @@ module.exports = function (source, map) {
19
19
if ( typeof map === 'string' ) map = JSON . parse ( map ) ;
20
20
if ( map && map . mappings ) opts . map . prev = map ;
21
21
22
- if ( params . syntax ) opts . syntax = require ( params . syntax ) ;
23
- if ( params . parser ) opts . parser = require ( params . parser ) ;
24
- if ( params . stringifier ) opts . stringifier = require ( params . stringifier ) ;
25
-
26
- var plugins = this . options . postcss ;
27
- if ( typeof plugins === 'function' ) {
28
- plugins = plugins . call ( this , this ) ;
22
+ var plugins ;
23
+ var options = this . options . postcss ;
24
+ if ( typeof options === 'function' ) {
25
+ options = options . call ( this , this ) ;
29
26
}
30
27
31
- if ( typeof plugins === 'undefined' ) {
28
+ if ( typeof options === 'undefined' ) {
32
29
plugins = [ ] ;
33
30
} else if ( params . pack ) {
34
- plugins = plugins [ params . pack ] ;
35
- } else if ( ! Array . isArray ( plugins ) ) {
36
- plugins = plugins . defaults ;
31
+ plugins = options [ params . pack ] ;
32
+ } else if ( ! Array . isArray ( options ) ) {
33
+ plugins = options . plugins || options . defaults ;
34
+ opts . syntax = options . syntax ;
35
+ opts . parser = options . parser ;
36
+ opts . stringifier = options . stringifier ;
37
+ }
38
+
39
+ if ( params . syntax && ! opts . syntax ) {
40
+ opts . syntax = require ( params . syntax ) ;
41
+ }
42
+ if ( params . parser && ! opts . parser ) {
43
+ opts . parser = require ( params . parser ) ;
44
+ }
45
+ if ( params . stringifier && ! opts . stringifier ) {
46
+ opts . stringifier = require ( params . stringifier ) ;
37
47
}
38
48
39
49
var loader = this ;
0 commit comments