@@ -6,6 +6,7 @@ extension Middleware where StateType: Equatable {
66 public func logger(
77 actionTransform: LoggerMiddleware < Self > . ActionTransform = . default( ) ,
88 actionPrinter: LoggerMiddleware < Self > . ActionLogger = . osLog,
9+ actionFilter: @escaping ( InputActionType ) -> Bool = { _ in true } ,
910 stateDiffTransform: LoggerMiddleware < Self > . StateDiffTransform = . diff( ) ,
1011 stateDiffPrinter: LoggerMiddleware < Self > . StateLogger = . osLog,
1112 queue: DispatchQueue = . main
@@ -30,20 +31,23 @@ public final class LoggerMiddleware<M: Middleware>: Middleware where M.StateType
3031 private var getState : GetState < StateType > ?
3132 private let actionTransform : ActionTransform
3233 private let actionPrinter : ActionLogger
34+ private let actionFilter : ( InputActionType ) -> Bool
3335 private let stateDiffTransform : StateDiffTransform
3436 private let stateDiffPrinter : StateLogger
3537
3638 init (
3739 _ middleware: M ,
3840 actionTransform: ActionTransform ,
3941 actionPrinter: ActionLogger ,
42+ actionFilter: @escaping ( InputActionType ) -> Bool = { _ in true } ,
4043 stateDiffTransform: StateDiffTransform ,
4144 stateDiffPrinter: StateLogger ,
4245 queue: DispatchQueue
4346 ) {
4447 self . middleware = middleware
4548 self . actionTransform = actionTransform
4649 self . actionPrinter = actionPrinter
50+ self . actionFilter = actionFilter
4751 self . stateDiffTransform = stateDiffTransform
4852 self . stateDiffPrinter = stateDiffPrinter
4953 self . queue = queue
@@ -55,6 +59,7 @@ public final class LoggerMiddleware<M: Middleware>: Middleware where M.StateType
5559 }
5660
5761 public func handle( action: InputActionType , from dispatcher: ActionSource , afterReducer: inout AfterReducer ) {
62+ guard actionFilter ( action) else { return }
5863 let stateBefore = getState ? ( )
5964 var innerAfterReducer = AfterReducer . doNothing ( )
6065
0 commit comments