react-native-redux-file-logger
Version:
This tool allows you to log Redux actions + state to files. It also provides a convenient API for file logging, so that you can add your own loggers (e.g. navigation state).
25 lines (23 loc) • 976 B
text/typescript
import type { Action, AnyAction } from 'redux';
import type { ThunkMiddleware } from 'redux-thunk';
// eslint-disable-next-line import/no-unresolved
import { addFileLogger, createLoggerMiddleware, getFileLogger } from 'react-native-redux-file-logger';
import type { FileConfig, LoggerOptions } from '../types';
export async function createReduxFileLoggerMiddleware<State = any, BasicAction extends Action = AnyAction>(
tag: string,
fileConfig: FileConfig,
loggerOptions: Omit<LoggerOptions<State>, 'logger'>,
): Promise<ThunkMiddleware<State, BasicAction, LoggerOptions<State>>> {
try {
await addFileLogger(tag, fileConfig);
const reduxFileLogger = getFileLogger(tag);
const options: LoggerOptions = {
...loggerOptions,
logger: reduxFileLogger!,
};
return createLoggerMiddleware(options);
} catch (e) {
console.error('createReduxFileLoggerMiddleware: ', e);
throw e;
}
}