# All files / src/lib parse-parameters.ts

100% Statements 28/28
100% Branches 13/13
100% Functions 1/1
100% Lines 28/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    291x
    1x
    1x
    26x
    2x
    2x
    24x
    24x
    24x
    24x
    28x
    28x
    7x
    28x
    7x
    21x
    4x
    14x
    10x
    10x
    28x
    4x
    4x
    4x
    28x
    24x
    24x
    24x
     import { InputParameter } from '@/lib/types'

    export function parseInputParameters(inputParameters?: InputParameter[]): Record<string, unknown> {
      if (!inputParameters || inputParameters.length === 0) {
        return {}
      }

      const parsedProps: Record<string, unknown> = {}

      inputParameters.forEach((param) => {
        try {
          if (param.type === 'string') {
            parsedProps[param.name] = param.defaultValue.replace(/^["']|["']$/g, '')
          } else if (param.type === 'number') {
            parsedProps[param.name] = Number(param.defaultValue)
          } else if (param.type === 'boolean') {
            parsedProps[param.name] = param.defaultValue === 'true'
          } else if (param.type === 'array' || param.type === 'object') {
            parsedProps[param.name] = JSON.parse(param.defaultValue)
          }
        } catch (err) {
          console.warn(`Failed to parse parameter ${param.name}:`, err)
          parsedProps[param.name] = param.defaultValue
        }
      })

      return parsedProps
    }