Catch errors when describeTrigger throws an exception (#17022)

This commit is contained in:
karwosts 2023-06-26 02:47:22 -07:00 committed by GitHub
parent 82463c2ef6
commit f77f7b3c36
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 66 additions and 0 deletions

View File

@ -81,6 +81,26 @@ export const describeTrigger = (
hass: HomeAssistant,
entityRegistry: EntityRegistryEntry[],
ignoreAlias = false
) => {
try {
return tryDescribeTrigger(trigger, hass, entityRegistry, ignoreAlias);
} catch (error: any) {
// eslint-disable-next-line no-console
console.error(error);
let msg = "Error in describing trigger";
if (error.message) {
msg += ": " + error.message;
}
return msg;
}
};
const tryDescribeTrigger = (
trigger: Trigger,
hass: HomeAssistant,
entityRegistry: EntityRegistryEntry[],
ignoreAlias = false
) => {
if (trigger.alias && !ignoreAlias) {
return trigger.alias;
@ -625,6 +645,26 @@ export const describeCondition = (
hass: HomeAssistant,
entityRegistry: EntityRegistryEntry[],
ignoreAlias = false
) => {
try {
return tryDescribeCondition(condition, hass, entityRegistry, ignoreAlias);
} catch (error: any) {
// eslint-disable-next-line no-console
console.error(error);
let msg = "Error in describing condition";
if (error.message) {
msg += ": " + error.message;
}
return msg;
}
};
const tryDescribeCondition = (
condition: Condition,
hass: HomeAssistant,
entityRegistry: EntityRegistryEntry[],
ignoreAlias = false
) => {
if (condition.alias && !ignoreAlias) {
return condition.alias;

View File

@ -38,6 +38,32 @@ export const describeAction = <T extends ActionType>(
action: ActionTypes[T],
actionType?: T,
ignoreAlias = false
): string => {
try {
return tryDescribeAction(
hass,
entityRegistry,
action,
actionType,
ignoreAlias
);
} catch (error: any) {
// eslint-disable-next-line no-console
console.error(error);
let msg = "Error in describing action";
if (error.message) {
msg += ": " + error.message;
}
return msg;
}
};
const tryDescribeAction = <T extends ActionType>(
hass: HomeAssistant,
entityRegistry: EntityRegistryEntry[],
action: ActionTypes[T],
actionType?: T,
ignoreAlias = false
): string => {
if (action.alias && !ignoreAlias) {
return action.alias;