6
6
7
7
/// <reference types="node" />
8
8
9
- import { DuplexOptions } from 'stream' ;
10
-
11
- type StreamType = NodeJS . ReadableStream | Merge2Stream ;
12
-
13
- interface Merge2Stream extends NodeJS . ReadWriteStream {
14
- /**
15
- * @summary Add more streams to an existing merged stream
16
- *
17
- * @param {...(StreamType|StreamType[]) } args streams to add
18
- *
19
- * @return The merged stream
20
- */
21
- add ( ...args : Array < StreamType | StreamType [ ] > ) : Merge2Stream ;
22
-
23
- /**
24
- * @summary It will emit 'queueDrain' when all streams merged.
25
- * If you set end === false in options, this event give you a notice that
26
- * you should add more streams to merge, or end the mergedStream.
27
- *
28
- * @param {string } event The 'queueDrain' event
29
- *
30
- * @return This stream
31
- */
32
- on ( event : 'queueDrain' , listener : ( ) => void ) : this;
33
- on ( event : string , listener : ( ...args : any [ ] ) => void ) : this;
34
-
35
- once ( event : 'queueDrain' , listener : ( ) => void ) : this;
36
- once ( event : string , listener : ( ...args : any [ ] ) => void ) : this;
37
- }
38
-
39
9
/**
40
10
* @summary This function takes an arbitrary number of streams and returns a
41
11
* Merge2Stream.
@@ -45,13 +15,53 @@ interface Merge2Stream extends NodeJS.ReadWriteStream {
45
15
*
46
16
* @see { @link https://github.com/teambition/merge2#api }
47
17
*
48
- * @param { ...(StreamType|StreamType[]) } args StreamTypes
49
- * @param { DuplexOptions } opts Optional DuplexOption to be specified last
18
+ * @param args StreamTypes
19
+ * @param opts Optional DuplexOption to be specified last
50
20
*
51
21
* @return A merged duplex stream
52
22
*/
53
- declare function IMerge2 ( ...args : Array < StreamType | StreamType [ ] | DuplexOptions > ) : Merge2Stream ;
23
+ declare function merge2 ( a : Streams , options ?: merge2 . Options ) : merge2 . Merge2Stream ;
24
+ declare function merge2 ( a : Streams , b : Streams , options ?: merge2 . Options ) : merge2 . Merge2Stream ;
25
+ declare function merge2 ( a : Streams , b : Streams , c : Streams , options ?: merge2 . Options ) : merge2 . Merge2Stream ;
26
+ declare function merge2 ( a : Streams , b : Streams , c : Streams , d : Streams , options ?: merge2 . Options ) : merge2 . Merge2Stream ;
27
+ declare function merge2 ( a : Streams , b : Streams , c : Streams , d : Streams , e : Streams , options ?: merge2 . Options ) : merge2 . Merge2Stream ;
28
+ declare function merge2 ( ...args : Streams [ ] ) : merge2 . Merge2Stream ;
29
+
30
+ type Streams = merge2 . StreamType | merge2 . StreamType [ ] ;
31
+
32
+ declare namespace merge2 {
33
+ type StreamType = NodeJS . ReadableStream | Merge2Stream ;
54
34
55
- declare namespace IMerge2 { }
35
+ interface Options {
36
+ end ?: boolean ;
37
+ objectMode ?: boolean ;
38
+ }
39
+
40
+ interface Merge2Stream extends NodeJS . ReadWriteStream {
41
+ /**
42
+ * @summary Add more streams to an existing merged stream
43
+ *
44
+ * @param args streams to add
45
+ *
46
+ * @return The merged stream
47
+ */
48
+ add ( ...args : Streams [ ] ) : Merge2Stream ;
49
+
50
+ /**
51
+ * @summary It will emit 'queueDrain' when all streams merged.
52
+ * If you set end === false in options, this event give you a notice that
53
+ * you should add more streams to merge, or end the mergedStream.
54
+ *
55
+ * @param {string } event The 'queueDrain' event
56
+ *
57
+ * @return This stream
58
+ */
59
+ on ( event : 'queueDrain' , listener : ( ) => void ) : this;
60
+ on ( event : string , listener : ( ...args : any [ ] ) => void ) : this;
61
+
62
+ once ( event : 'queueDrain' , listener : ( ) => void ) : this;
63
+ once ( event : string , listener : ( ...args : any [ ] ) => void ) : this;
64
+ }
65
+ }
56
66
57
- export = IMerge2 ;
67
+ export = merge2 ;
0 commit comments