Files
pybricks-code/src/error-log/sagas.ts
T
David Lechner 4c4061561d ble-nordic-uart-service: rename directory
This follows the pattern of other ble service directories.
2021-12-27 13:30:36 -06:00

75 lines
2.3 KiB
TypeScript

// SPDX-License-Identifier: MIT
// Copyright (c) 2020-2021 The Pybricks Authors
import { takeEvery } from 'typed-redux-saga/macro';
import {
BleUartActionType,
BleUartDidFailToWriteAction,
} from '../ble-nordic-uart-service/actions';
import {
BlePybricksServiceEventActionType,
BlePybricksServiceEventProtocolErrorAction,
} from '../ble-pybricks-service/actions';
import {
BleDeviceActionType,
BleDeviceDidFailToConnectAction,
BleDeviceFailToConnectReasonType,
} from '../ble/actions';
import {
LicenseActionType,
LicenseDidFailToFetchListAction,
} from '../licenses/actions';
import {
BootloaderConnectionActionType,
BootloaderConnectionDidErrorAction,
BootloaderConnectionDidFailToConnectAction,
BootloaderConnectionFailureReason,
} from '../lwp3-bootloader/actions';
function bleDeviceDidFailToConnect(action: BleDeviceDidFailToConnectAction): void {
if (action.reason === BleDeviceFailToConnectReasonType.Unknown) {
console.error(action.err);
}
}
function pybricksProtocolError(
action: BlePybricksServiceEventProtocolErrorAction,
): void {
console.error(action.err);
}
function bleDataDidFailToWrite(action: BleUartDidFailToWriteAction): void {
console.error(action.err);
}
function bootloaderDidFailToConnect(
action: BootloaderConnectionDidFailToConnectAction,
): void {
if (action.reason === BootloaderConnectionFailureReason.Unknown) {
console.error(action.err);
}
}
function bootloaderDidError(action: BootloaderConnectionDidErrorAction): void {
console.error(action.err);
}
function licenseDidFailToFetch(action: LicenseDidFailToFetchListAction): void {
console.error(`Failed to fetch licenses: ${action.reason.statusText}`);
}
export default function* (): Generator {
yield* takeEvery(BleDeviceActionType.DidFailToConnect, bleDeviceDidFailToConnect);
yield* takeEvery(
BlePybricksServiceEventActionType.ProtocolError,
pybricksProtocolError,
);
yield* takeEvery(BleUartActionType.DidFailToWrite, bleDataDidFailToWrite);
yield* takeEvery(
BootloaderConnectionActionType.DidFailToConnect,
bootloaderDidFailToConnect,
);
yield* takeEvery(BootloaderConnectionActionType.DidError, bootloaderDidError);
yield* takeEvery(LicenseActionType.DidFailToFetchList, licenseDidFailToFetch);
}