diff --git a/Sources/LoggerMiddleware/LoggerMiddleware.swift b/Sources/LoggerMiddleware/LoggerMiddleware.swift index b0b5a2e..bfe5701 100644 --- a/Sources/LoggerMiddleware/LoggerMiddleware.swift +++ b/Sources/LoggerMiddleware/LoggerMiddleware.swift @@ -6,6 +6,7 @@ extension Middleware where StateType: Equatable { public func logger( actionTransform: LoggerMiddleware.ActionTransform = .default(), actionPrinter: LoggerMiddleware.ActionLogger = .osLog, + actionFilter: @escaping (InputActionType) -> Bool = { _ in true }, stateDiffTransform: LoggerMiddleware.StateDiffTransform = .diff(), stateDiffPrinter: LoggerMiddleware.StateLogger = .osLog, queue: DispatchQueue = .main @@ -30,6 +31,7 @@ public final class LoggerMiddleware: Middleware where M.StateType private var getState: GetState? private let actionTransform: ActionTransform private let actionPrinter: ActionLogger + private let actionFilter: (InputActionType) -> Bool private let stateDiffTransform: StateDiffTransform private let stateDiffPrinter: StateLogger @@ -37,6 +39,7 @@ public final class LoggerMiddleware: Middleware where M.StateType _ middleware: M, actionTransform: ActionTransform, actionPrinter: ActionLogger, + actionFilter: @escaping (InputActionType) -> Bool = { _ in true }, stateDiffTransform: StateDiffTransform, stateDiffPrinter: StateLogger, queue: DispatchQueue @@ -44,6 +47,7 @@ public final class LoggerMiddleware: Middleware where M.StateType self.middleware = middleware self.actionTransform = actionTransform self.actionPrinter = actionPrinter + self.actionFilter = actionFilter self.stateDiffTransform = stateDiffTransform self.stateDiffPrinter = stateDiffPrinter self.queue = queue @@ -55,6 +59,7 @@ public final class LoggerMiddleware: Middleware where M.StateType } public func handle(action: InputActionType, from dispatcher: ActionSource, afterReducer: inout AfterReducer) { + guard actionFilter(action) else { return } let stateBefore = getState?() var innerAfterReducer = AfterReducer.doNothing()