@@ -31,6 +31,7 @@ const pluginOptions = {
31
31
extensions : true ,
32
32
emitCss : true ,
33
33
preprocess : true ,
34
+ orderPreprocessors : true ,
34
35
35
36
// legacy — we might want to remove/change these in a future version
36
37
onwarn : true ,
@@ -219,22 +220,34 @@ module.exports = function svelte(options = {}) {
219
220
}
220
221
return resp ;
221
222
}
222
- ) ;
223
+ )
223
224
} ;
224
225
}
225
- preprocessPromise = preprocess (
226
- code ,
227
- Object . assign ( preprocessOptions , { filename : id } )
228
- ) . then ( code => code . toString ( ) ) ;
226
+ preprocessPromise = preprocess (
227
+ code ,
228
+ Object . assign ( preprocessOptions , { filename : id } )
229
+ ) . then ( code => code . toString ( ) ) ;
229
230
} else {
230
- preprocessPromise = preprocess ( code , options . preprocess , {
231
- filename : id
232
- } ) . then ( processed => {
233
- if ( processed . dependencies ) {
234
- dependencies . push ( ...processed . dependencies ) ;
235
- }
236
- return processed . toString ( ) ;
237
- } ) ;
231
+ if ( options . orderPreprocessors ) {
232
+ preprocessPromise = options . preprocess . reduce ( ( acc , cur ) => {
233
+ return Promise . resolve ( acc ) . then ( code => {
234
+ return preprocess (
235
+ code . code ,
236
+ cur ,
237
+ { filename : id }
238
+ )
239
+ } )
240
+ } , { code } ) . then ( code => code . toString ( ) ) ;
241
+ } else {
242
+ preprocessPromise = preprocess ( code , options . preprocess , {
243
+ filename : id
244
+ } ) . then ( processed => {
245
+ if ( processed . dependencies ) {
246
+ dependencies . push ( ...processed . dependencies ) ;
247
+ }
248
+ return processed . toString ( ) ;
249
+ } ) ;
250
+ }
238
251
}
239
252
} else {
240
253
preprocessPromise = Promise . resolve ( code ) ;
0 commit comments