11"use strict" ;
22Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
33exports . Filter = void 0 ;
4- const Pipe_1 = require ( "./Pipe" ) ;
5- const index_1 = require ( "../index" ) ;
4+ const types_1 = require ( "../types" ) ;
65/**
76 * Pipe Filter.
87 *
@@ -11,19 +10,24 @@ const index_1 = require("../index");
1110 * filter function passed to them by control message, as well as having
1211 * their Bypass/Filter operation mode toggled via control message.
1312 */
14- class Filter extends Pipe_1 . Pipe {
13+ class Filter extends types_1 . Pipe {
1514 /**
1615 * Constructor.
1716 *
1817 * Optionally connect the output and set the parameters.
1918 */
2019 constructor ( { name, output, filter, params, } ) {
2120 super ( output ) ;
22- this . mode = index_1 . FilterControlMessageType . FILTER ;
23- this . params = undefined ;
24- this . name = name ;
25- this . filter = filter ;
26- this . params = params ;
21+ this . mode = types_1 . FilterControlMessageType . FILTER ;
22+ this . filter = undefined ;
23+ this . params = { } ;
24+ this . name = "Unnamed Filter" ;
25+ if ( name )
26+ this . name = name ;
27+ if ( filter )
28+ this . filter = filter ;
29+ if ( params )
30+ this . params = params ;
2731 }
2832 /**
2933 * Handle the incoming message.
@@ -67,9 +71,9 @@ class Filter extends Pipe_1.Pipe {
6771 let success = true ;
6872 // Filter normal messages
6973 switch ( message . type ) {
70- case index_1 . PipeMessageType . NORMAL :
74+ case types_1 . PipeMessageType . NORMAL :
7175 try {
72- if ( this . mode === index_1 . FilterControlMessageType . FILTER ) {
76+ if ( this . mode === types_1 . FilterControlMessageType . FILTER ) {
7377 outputMessage = this . applyFilter ( message ) ;
7478 }
7579 else {
@@ -83,16 +87,16 @@ class Filter extends Pipe_1.Pipe {
8387 }
8488 break ;
8589 // Accept parameters from control message
86- case index_1 . FilterControlMessageType . SET_PARAMS :
90+ case types_1 . FilterControlMessageType . SET_PARAMS :
8791 if ( this . isTarget ( message ) ) {
88- this . params = message . params ;
92+ this . params = message . params || { } ;
8993 }
9094 else {
9195 success = ( ( _b = this . output ) === null || _b === void 0 ? void 0 : _b . write ( message ) ) || false ;
9296 }
9397 break ;
9498 // Accept filter function from control message
95- case index_1 . FilterControlMessageType . SET_FILTER :
99+ case types_1 . FilterControlMessageType . SET_FILTER :
96100 if ( this . isTarget ( message ) ) {
97101 this . filter = message . filter ;
98102 }
@@ -101,8 +105,8 @@ class Filter extends Pipe_1.Pipe {
101105 }
102106 break ;
103107 // Toggle between Filter or Bypass operational modes
104- case index_1 . FilterControlMessageType . BYPASS :
105- case index_1 . FilterControlMessageType . FILTER :
108+ case types_1 . FilterControlMessageType . BYPASS :
109+ case types_1 . FilterControlMessageType . FILTER :
106110 if ( this . isTarget ( message ) ) {
107111 this . mode = message . type ;
108112 }
@@ -126,7 +130,8 @@ class Filter extends Pipe_1.Pipe {
126130 * Filter the message.
127131 */
128132 applyFilter ( message ) {
129- this . filter ( message , this . params ) ;
133+ if ( this . mode !== types_1 . FilterControlMessageType . BYPASS && this . filter )
134+ this . filter ( message , this . params ) ;
130135 return message ;
131136 }
132137}
0 commit comments