@@ -19,21 +19,31 @@ module.exports = function (source, map) {
1919 if ( typeof map === 'string' ) map = JSON . parse ( map ) ;
2020 if ( map && map . mappings ) opts . map . prev = map ;
2121
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 ) ;
2926 }
3027
31- if ( typeof plugins === 'undefined' ) {
28+ if ( typeof options === 'undefined' ) {
3229 plugins = [ ] ;
3330 } 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 ) ;
3747 }
3848
3949 var loader = this ;
0 commit comments