diff --git a/package.json b/package.json index 5b24b20..41fc0e5 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,14 @@ "type": "git", "url": "git+https://github.com/btroncone/ngrx-store-logger.git" }, - "keywords": ["redux", "ngrx", "store", "logger", "middleware", "rxjs"], + "keywords": [ + "redux", + "ngrx", + "store", + "logger", + "middleware", + "rxjs" + ], "author": "Brian Troncone", "license": "MIT", "bugs": { diff --git a/src/index.ts b/src/index.ts index 1dff64a..3f9c57e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -154,6 +154,7 @@ const isAllowed = (action, filter) => { if (!filter) { return true; } + if(typeof filter === 'function') return filter(action.type); if (filter.whitelist && filter.whitelist.length) { return filter.whitelist.indexOf(action.type) !== -1; } @@ -256,7 +257,7 @@ export interface LoggerOptions { * Print timestamp with action? default: true */ timestamp?: boolean; - filter?: LoggerFilterOption; + filter?: LoggerFilterOption | ActionFilter; /** * Transform state before print default: state => state */ @@ -268,15 +269,16 @@ export interface LoggerOptions { colors?: LoggerColorsOption; } +export type ActionFilter = (type: string) => boolean; export interface LoggerFilterOption { /** * Only print actions included in this list - has priority over blacklist */ - whitelist?: string[]; + whitelist?: Array; /** * Only print actions that are NOT included in this list */ - blacklist?: string[]; + blacklist?: Array; } export interface LoggerColorsOption {