From 5c479d9d6856645a077502547c6885943bdbf25b Mon Sep 17 00:00:00 2001 From: Georg Schwarz Date: Wed, 17 Jan 2024 12:15:38 +0100 Subject: [PATCH] Make undefined checks more explicit --- .../checks/composite-blocktype-definition.ts | 14 +++++++++++--- .../lib/validation/checks/pipeline-definition.ts | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libs/language-server/src/lib/validation/checks/composite-blocktype-definition.ts b/libs/language-server/src/lib/validation/checks/composite-blocktype-definition.ts index 6e8b9bef3..5686a9d6c 100644 --- a/libs/language-server/src/lib/validation/checks/composite-blocktype-definition.ts +++ b/libs/language-server/src/lib/validation/checks/composite-blocktype-definition.ts @@ -31,7 +31,11 @@ function checkHasPipeline( context: ValidationContext, ): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (blockType.pipes?.length === 0) { + if (blockType.pipes === undefined) { + return; + } + + if (blockType.pipes.length === 0) { context.accept( 'error', `Composite blocktypes must define one pipeline '${blockType.name}'`, @@ -48,7 +52,11 @@ function checkExactlyOnePipeline( context: ValidationContext, ): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (blockType.pipes?.length > 1) { + if (blockType.pipes === undefined) { + return; + } + + if (blockType.pipes.length > 1) { blockType.pipes.forEach((pipe) => { context.accept( 'error', @@ -87,7 +95,7 @@ function doCheckDefinedBlockIsUsed( context: ValidationContext, ): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!BlockTypeWrapper.canBeWrapped(block?.type)) { + if (block.type === undefined || !BlockTypeWrapper.canBeWrapped(block.type)) { return; } const pipes = pipelineWrapper.astNode.pipes; diff --git a/libs/language-server/src/lib/validation/checks/pipeline-definition.ts b/libs/language-server/src/lib/validation/checks/pipeline-definition.ts index de2037697..4c3811b8b 100644 --- a/libs/language-server/src/lib/validation/checks/pipeline-definition.ts +++ b/libs/language-server/src/lib/validation/checks/pipeline-definition.ts @@ -144,7 +144,7 @@ function doCheckDefinedBlockIsUsed( context: ValidationContext, ): void { // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition - if (!BlockTypeWrapper.canBeWrapped(block?.type)) { + if (block.type === undefined || !BlockTypeWrapper.canBeWrapped(block.type)) { return; } const blockType = new BlockTypeWrapper(block.type);