( blocks: Record<string, unknown> )
| 303 | * Looks for any valid start block and extracts its inputFormat configuration. |
| 304 | */ |
| 305 | export function extractInputFormatFromBlocks( |
| 306 | blocks: Record<string, unknown> |
| 307 | ): InputFormatField[] | null { |
| 308 | // Look for any valid start block |
| 309 | for (const [, block] of Object.entries(blocks)) { |
| 310 | if (!block || typeof block !== 'object') continue |
| 311 | |
| 312 | const blockObj = block as Record<string, unknown> |
| 313 | const blockType = blockObj.type as string |
| 314 | |
| 315 | if (isInputDefinitionTrigger(blockType)) { |
| 316 | // Try to get inputFormat from subBlocks.inputFormat.value |
| 317 | const subBlocks = blockObj.subBlocks as Record<string, { value?: unknown }> | undefined |
| 318 | const subBlockValue = subBlocks?.inputFormat?.value |
| 319 | |
| 320 | // Try legacy config.params.inputFormat |
| 321 | const config = blockObj.config as Record<string, unknown> | undefined |
| 322 | const params = config?.params as Record<string, unknown> | undefined |
| 323 | const paramsValue = params?.inputFormat |
| 324 | |
| 325 | const normalized = normalizeInputFormatValue(subBlockValue ?? paramsValue) |
| 326 | return normalized.length > 0 ? normalized : null |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | return null |
| 331 | } |
no test coverage detected