1
1
import { Operator , TerminalOperator , OperatorResult } from './operators/operator' ;
2
2
3
- interface ChainContext {
4
- lastOperatorIsTerminal : boolean
5
- }
6
-
7
3
class ChainedOperator < F > {
8
4
constructor ( private delegate : Operator < F , any > ,
9
5
private next : ChainedOperator < any > ) { }
10
6
11
- public performChain ( from : F , context : ChainContext ) : OperatorResult < any > {
7
+ public performChain ( from : F ) : OperatorResult < any > {
12
8
let result : OperatorResult < any > ;
13
9
const to : OperatorResult < any > = this . delegate . perform ( from ) ;
14
10
if ( ! to . skip && this . next ) {
15
11
if ( to . needsFlattening ) {
16
12
const tmp : Array < any > = [ ] ;
17
13
for ( let i = 0 ; i < to . value . length ; i ++ ) {
18
- const value : OperatorResult < any > = this . next . performChain ( to . value [ i ] , context ) ;
14
+ const value : OperatorResult < any > = this . next . performChain ( to . value [ i ] ) ;
19
15
tmp . push ( value . value ) ;
20
16
}
21
17
result = {
@@ -24,7 +20,7 @@ class ChainedOperator<F> {
24
20
needsFlattening : true
25
21
}
26
22
} else {
27
- result = this . next . performChain ( to . value , context ) ;
23
+ result = this . next . performChain ( to . value ) ;
28
24
}
29
25
} else {
30
26
result = to ;
@@ -67,7 +63,7 @@ declare global {
67
63
function handleTerminalPipe ( chainedOperator : ChainedOperator < any > , array : Array < any > , lastOperator : Operator < any , any > ) : any {
68
64
let result : any ;
69
65
for ( let i = 0 ; i < array . length ; i ++ ) {
70
- const value : OperatorResult < any > = chainedOperator . performChain ( array [ i ] , { lastOperatorIsTerminal : true } ) ;
66
+ const value : OperatorResult < any > = chainedOperator . performChain ( array [ i ] ) ;
71
67
if ( ! value . skip ) {
72
68
result = value . value ;
73
69
break ;
@@ -82,7 +78,7 @@ function handleTerminalPipe(chainedOperator: ChainedOperator<any>, array: Array<
82
78
function handleIntermediatePipe ( chainedOperator : ChainedOperator < any > , array : Array < any > ) : Array < any > {
83
79
const result : Array < any > = [ ]
84
80
for ( let i = 0 ; i < array . length ; i ++ ) {
85
- const value : OperatorResult < any > = chainedOperator . performChain ( array [ i ] , { lastOperatorIsTerminal : false } ) ;
81
+ const value : OperatorResult < any > = chainedOperator . performChain ( array [ i ] ) ;
86
82
if ( ! value . skip ) {
87
83
if ( value . needsFlattening ) {
88
84
for ( let j = 0 ; j < value . value . length ; j ++ ) {
0 commit comments