refactor: Accept unknown in errorToConsole to drop as Error casts (#2541)

This commit is contained in:
Dermot Duffy
2026-06-30 17:45:13 -07:00
committed by dermotduffy
parent fcef48e75a
commit 95f35bd326
19 changed files with 32 additions and 27 deletions
+1 -1
View File
@@ -366,7 +366,7 @@ export class FrigateCamera extends Camera {
cameraConfig.frigate.camera_name,
);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return null;
}
+1 -1
View File
@@ -16,7 +16,7 @@ const getGo2RTCStreamMetadata = async (
timeoutSeconds,
});
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return null;
}
};
@@ -176,7 +176,7 @@ export class ActionsManager implements ActionsExecutor {
await actionSet.execute(this._api);
forwardHaptic('success');
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
forwardHaptic('warning');
}
this._actionsInFlight = this._actionsInFlight.filter((a) => a !== actionSet);
+1 -1
View File
@@ -37,7 +37,7 @@ export class IssueStateManager implements IssueReadOnlyState {
} catch (e) {
// Isolate one issue's detection failure so it cannot abort detection
// for the rest; log so the cause is visible.
errorToConsole(e as Error);
errorToConsole(e);
}
this._logIfNew(issue);
}
+1 -1
View File
@@ -73,7 +73,7 @@ export class MediaPlayerManager {
// Failing to fetch media player information is not considered
// sufficiently serious to block card startup -- it is just logged and we
// move on.
errorToConsole(e as Error);
errorToConsole(e);
}
// Filter out entities that are marked as hidden (this information is not
+1 -1
View File
@@ -103,7 +103,7 @@ export class ViewItemManager {
try {
url = await homeAssistantGetSignedURLIfNecessary(hass, endpoint);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
url = null;
}
+1 -1
View File
@@ -111,7 +111,7 @@ export class GalleryController {
useCache,
});
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return;
}
@@ -400,7 +400,7 @@ export class MediaFilterController {
try {
metadata = await cameraManager.getMediaMetadata();
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
}
if (!metadata) {
return;
+2 -2
View File
@@ -191,7 +191,7 @@ export class SignedURLController implements ReactiveController {
},
);
} catch (e: unknown) {
errorToConsole(e as Error);
errorToConsole(e);
return null;
}
}
@@ -207,7 +207,7 @@ export class SignedURLController implements ReactiveController {
PROXY_URL_SIGN_EXPIRY_SECONDS,
);
} catch (e: unknown) {
errorToConsole(e as Error);
errorToConsole(e);
return null;
}
}
+1 -1
View File
@@ -248,7 +248,7 @@ export class TimelineDataSource {
...(this._showRecordings ? [this._refreshRecordings(window)] : []),
]);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
}
}
+2 -2
View File
@@ -125,7 +125,7 @@ export class AdvancedCameraCardElementsCore extends LitElement {
try {
element.setConfig(config);
} catch (e) {
errorToConsole(e as Error, console.error);
errorToConsole(e, console.error);
throw new AdvancedCameraCardError(localize('error.invalid_elements_config'));
}
return element;
@@ -155,7 +155,7 @@ export class AdvancedCameraCardElementsCore extends LitElement {
this._renderedElements = elements;
this._root = this._createRoot();
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
fireAdvancedCameraCardEvent<IssueTriggerEventData>(this, 'issue:trigger', {
key: 'config_error',
error: new ElementsCreationError(elements),
+1 -1
View File
@@ -199,7 +199,7 @@ export class AdvancedCameraCardLiveJSMPEG extends LitElement implements MediaPla
JSMPEG_URL_SIGN_EXPIRY_SECONDS,
);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
}
const address = response ? convertHTTPAdressToWebsocket(response) : null;
+1 -1
View File
@@ -40,7 +40,7 @@ export class DeviceRegistryManager {
type: 'config/device_registry/list',
});
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return;
}
deviceList.forEach((device) => {
+2 -2
View File
@@ -35,7 +35,7 @@ export class EntityRegistryManagerLive implements EntityRegistryManager {
entity_id: entityID,
});
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return null;
}
this._cache.set(entity.entity_id, entity);
@@ -79,7 +79,7 @@ export class EntityRegistryManagerLive implements EntityRegistryManager {
type: 'config/entity_registry/list',
});
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return;
}
entityList.forEach((entity) => {
+1 -1
View File
@@ -40,7 +40,7 @@ export const resolveMedia = async (
try {
resolvedMedia = await homeAssistantWSRequest(hass, resolvedMediaSchema, request);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
}
if (cache && resolvedMedia) {
cache.set(mediaContentID, resolvedMedia);
+5 -5
View File
@@ -76,13 +76,13 @@ export function contentsChanged(
/**
* Log an error as a warning to the console.
* @param e The Error-like object.
* @param e The caught error or error-like value.
* @param func The Console func to call.
*/
export function errorToConsole(
e: Error | { message: unknown } | string,
func: CallableFunction = console.warn,
): void {
export function errorToConsole(e: unknown, func: CallableFunction = console.warn): void {
if (!e) {
return;
}
if (e instanceof AdvancedCameraCardError && e.context) {
func(e, e.context);
} else if (typeof e === 'object' && 'message' in e) {
+3 -3
View File
@@ -19,7 +19,7 @@ export async function toggleReviewed(
try {
await viewItemManager.reviewMedia(item, newState);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return false;
}
item.setReviewed(newState);
@@ -55,7 +55,7 @@ export async function toggleFavorite(
try {
await viewItemManager.favorite(item, newState);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return false;
}
return true;
@@ -72,7 +72,7 @@ export async function downloadMedia(
try {
await viewItemManager.download(item);
} catch (e) {
errorToConsole(e as Error);
errorToConsole(e);
return false;
}
return true;
+1 -1
View File
@@ -30,7 +30,7 @@ export const renderTask = <R>(
pending: () =>
options?.inProgressFunc?.() ?? renderProgressIndicator(progressConfig),
error: (e: unknown) => {
errorToConsole(e as Error);
errorToConsole(e);
return options?.errorFunc?.(e as Error);
},
complete: completeFunc,
+5
View File
@@ -114,6 +114,11 @@ describe('errorToConsole', () => {
errorToConsole('string message');
expect(spy).toHaveBeenCalledWith('string message');
});
it('should do nothing given a falsy value', () => {
spy.mockClear();
errorToConsole(null);
expect(spy).not.toHaveBeenCalled();
});
});
// @vitest-environment jsdom