Skip to content

Commit 133dcdc

Browse files
authored
Merge pull request #6 from SwiftRex/ActionFilter
Action filter
2 parents 6dfa59b + fb28f77 commit 133dcdc

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

Sources/LoggerMiddleware/LoggerMiddleware.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)