From 3a9c3eb26d290732de1984c5ba054d865744c521 Mon Sep 17 00:00:00 2001 From: micutad Date: Thu, 21 Mar 2024 23:10:25 +0100 Subject: [PATCH] Added fallback domain in case its not found which causing crash --- src/type-writer.extension.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/type-writer.extension.ts b/src/type-writer.extension.ts index dbc0802..719b5ee 100644 --- a/src/type-writer.extension.ts +++ b/src/type-writer.extension.ts @@ -96,6 +96,7 @@ export async function TypeWriter({ hass, logger }: TServiceParams) { ), createTarget( value.target as ServiceListServiceTarget, + domain ), ].filter( i => !is.undefined(i), @@ -133,7 +134,7 @@ export async function TypeWriter({ hass, logger }: TServiceParams) { resultFile, ); - function createTarget(target: ServiceListServiceTarget) { + function createTarget(target: ServiceListServiceTarget, fallbackDomain) { if (is.empty(target)) { return undefined; } @@ -142,7 +143,7 @@ export async function TypeWriter({ hass, logger }: TServiceParams) { undefined, factory.createIdentifier("entity_id"), undefined, - generateEntityList(target), + generateEntityList(target, fallbackDomain), ); return addSyntheticLeadingComment( property, @@ -171,7 +172,7 @@ export async function TypeWriter({ hass, logger }: TServiceParams) { * * This block is specifically for refining the `entity_id` type definitions */ - function generateEntityList(target: ServiceListServiceTarget) { + function generateEntityList(target: ServiceListServiceTarget, fallbackDomain) { const isEmpty = is.empty(target.entity) || target.entity.every(i => is.empty(i)); if (isEmpty) { @@ -191,7 +192,7 @@ export async function TypeWriter({ hass, logger }: TServiceParams) { ); } const domain = target.entity.find(i => !is.empty(i.domain))?.domain; - const domainReference = domain.shift(); + const domainReference = domain?.shift() ?? fallbackDomain; return factory.createParenthesizedType( factory.createUnionTypeNode([ factory.createTypeReferenceNode(