From 2bafa730ca5c8a011706a5d19453813860694f7d Mon Sep 17 00:00:00 2001 From: James Martinez Date: Thu, 16 Apr 2026 16:34:25 -0500 Subject: [PATCH] refactor(openworkflow, cli): narrow isWorkflow to a type predicate typing `isWorkflow` as `value is Workflow` lets callers drop the redundant `as Workflow<...>` cast in the CLI's workflow discovery loop. no behavior change. --- packages/cli/commands.ts | 5 ++--- packages/openworkflow/core/workflow-definition.ts | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/cli/commands.ts b/packages/cli/commands.ts index eb89a472..db1439f1 100644 --- a/packages/cli/commands.ts +++ b/packages/cli/commands.ts @@ -775,10 +775,9 @@ async function importWorkflows( // extract workflow exports (named and default) for (const [key, value] of Object.entries(module)) { if (isWorkflow(value)) { - const workflow = value as Workflow; - workflows.push(workflow); + workflows.push(value); consola.debug( - `Found workflow "${workflow.spec.name}" in ${file} (${key})`, + `Found workflow "${value.spec.name}" in ${file} (${key})`, ); } } diff --git a/packages/openworkflow/core/workflow-definition.ts b/packages/openworkflow/core/workflow-definition.ts index b84d02b3..5818bab1 100644 --- a/packages/openworkflow/core/workflow-definition.ts +++ b/packages/openworkflow/core/workflow-definition.ts @@ -106,7 +106,9 @@ export function defineWorkflow( * @param value - The value to check * @returns True if the value is a Workflow */ -export function isWorkflow(value: unknown) { +export function isWorkflow( + value: unknown, +): value is Workflow { if (typeof value !== "object" || value === null) { return false; }