You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-wallet/src/services/LogService.js

62 lines
1.7 KiB

6 years ago
/* @flow */
import * as LogActions from 'actions/LogActions';
6 years ago
import { TRANSPORT, DEVICE } from 'trezor-connect';
6 years ago
import * as DISCOVERY from 'actions/constants/discovery';
import * as ACCOUNT from 'actions/constants/account';
6 years ago
5 years ago
import type { Middleware, MiddlewareAPI, MiddlewareDispatch, Action } from 'flowtype';
6 years ago
6 years ago
const actions: Array<string> = [
6 years ago
TRANSPORT.START,
DEVICE.CONNECT,
DEVICE.DISCONNECT,
6 years ago
DISCOVERY.START,
ACCOUNT.CREATE,
6 years ago
];
6 years ago
/**
* Middleware
6 years ago
*/
5 years ago
const LogService: Middleware = (api: MiddlewareAPI) => (next: MiddlewareDispatch) => (
action: Action
): Action => {
6 years ago
next(action);
6 years ago
if (actions.indexOf(action.type) < 0) return action;
switch (action.type) {
case TRANSPORT.START:
5 years ago
api.dispatch(
LogActions.add('Transport', {
type: action.payload.type,
version: action.payload.version,
})
);
6 years ago
break;
case DEVICE.CONNECT:
api.dispatch(LogActions.add('Device connected', action.payload));
6 years ago
break;
case DEVICE.DISCONNECT:
api.dispatch(LogActions.add('Device disconnected', action.payload));
6 years ago
break;
case DISCOVERY.START:
api.dispatch(LogActions.add('Discovery started', action));
break;
case ACCOUNT.CREATE:
api.dispatch(LogActions.add('Account created', action));
break;
5 years ago
default:
break;
6 years ago
}
6 years ago
// if (action.type === TRANSPORT.START) {
// api.dispatch(LogActions.add('Transport', action.payload));
// } else if (action.type === DEVICE.CONNECT) {
// api.dispatch(LogActions.add(action.type, action));
// }
6 years ago
return action;
};
5 years ago
export default LogService;