diff --git a/redux-logger/redux-logger.d.ts b/redux-logger/redux-logger.d.ts index bb1346b1f..e04064778 100644 --- a/redux-logger/redux-logger.d.ts +++ b/redux-logger/redux-logger.d.ts @@ -1,4 +1,4 @@ -// Type definitions for redux-logger v2.0.0 +// Type definitions for redux-logger v2.6.0 // Project: https://github.com/fcomb/redux-logger // Definitions by: Alexander Rusakov // Definitions: https://github.com/borisyankov/DefinitelyTyped @@ -7,16 +7,33 @@ declare module 'redux-logger' { - interface ReduxLoggerOptions { - actionTransformer?: (action: any) => any; - collapsed?: boolean; - duration?: boolean; - level?: string; - logger?: any; - predicate?: (getState: Function, action: any) => boolean; - timestamp?: boolean; - stateTransformer?: (state: any) => any; + type LoggerPredicate = (getState: () => any, action: any) => boolean; + + interface ColorsObject { + title?: (action: any) => string; + prevState?: (prevState: any) => string; + action?: (action: any) => string; + nextState?: (nextState: any) => string; + error?: (error: any, prevState: any) => string; } - export function createLogger(options?: ReduxLoggerOptions): Redux.Middleware; + interface ReduxLoggerOptions { + level?: string; + duration?: boolean; + timestamp?: boolean; + colors?: ColorsObject; + logger?: any; + logErrors?: boolean; + collapsed?: boolean | LoggerPredicate; + predicate?: LoggerPredicate; + stateTransformer?: (state: any) => any; + actionTransformer?: (action: any) => any; + errorTransformer?: (error: any) => any; + } + + // Trickery to get TypeScript to accept that our anonymous, non-default export is a function. + // see https://github.com/Microsoft/TypeScript/issues/3612 for more + namespace createLogger {} + function createLogger(options?: ReduxLoggerOptions): Redux.Middleware; + export = createLogger; }