@@ -28,13 +28,17 @@ module.exports = function f (b, opts) {
28
28
var needRecords = ! files . length ;
29
29
30
30
var outopt = defined ( opts . outputs , opts . output , opts . o ) ;
31
- if ( outopt && ! isarray ( outopt ) ) outopt = [ outopt ] ;
32
- var outputs = defined ( outopt , [ ] ) . map ( function ( o ) {
33
- if ( isStream ( o ) ) return o ;
34
- else return fs . createWriteStream ( o ) ;
35
- } ) ;
36
- if ( ! isarray ( outputs ) && isStream ( outputs ) ) outputs = [ outputs ] ;
37
- else if ( ! isarray ( outputs ) ) outputs = [ ] ;
31
+ if ( typeof outopt === 'function' ) {
32
+ var outputs = outopt
33
+ } else {
34
+ if ( outopt && ! isarray ( outopt ) ) outopt = [ outopt ] ;
35
+ var outputs = defined ( outopt , [ ] ) . map ( function ( o ) {
36
+ if ( isStream ( o ) ) return o ;
37
+ else return fs . createWriteStream ( o ) ;
38
+ } ) ;
39
+ if ( ! isarray ( outputs ) && isStream ( outputs ) ) outputs = [ outputs ] ;
40
+ else if ( ! isarray ( outputs ) ) outputs = [ ] ;
41
+ }
38
42
39
43
function moreOutputs ( file ) {
40
44
if ( isarray ( outopt ) ) return [ ] ;
@@ -68,10 +72,14 @@ module.exports = function f (b, opts) {
68
72
'pack' , [ pack ( packOpts ) ] ,
69
73
'wrap' , [ ]
70
74
] ) ;
71
- if ( ix >= outputs . length ) {
72
- outputs . push . apply ( outputs , moreOutputs ( x ) ) ;
75
+ if ( typeof outputs === 'function' ) {
76
+ pipeline . pipe ( outputs ( x ) )
77
+ } else {
78
+ if ( ix >= outputs . length ) {
79
+ outputs . push . apply ( outputs , moreOutputs ( x ) ) ;
80
+ }
81
+ if ( outputs [ ix ] ) pipeline . pipe ( outputs [ ix ] ) ;
73
82
}
74
- if ( outputs [ ix ] ) pipeline . pipe ( outputs [ ix ] ) ;
75
83
76
84
acc [ path . resolve ( cwd , x ) ] = pipeline ;
77
85
return acc ;
0 commit comments