function validateParameters()

in src/validation/validateStates.ts [149:171]


function validateParameters(parametersPropNode: PropertyASTNode, document: TextDocument): Diagnostic[] {
  let diagnostics: Diagnostic[] = []
  const valueNode = parametersPropNode.valueNode

  if (valueNode && isObjectNode(valueNode)) {
    valueNode.properties.forEach((prop) => {
      if (prop.valueNode && prop.keyNode.value.endsWith('.$')) {
        const propValue = prop.valueNode.value

        if (typeof propValue !== 'string' || !(isJsonPath(propValue) || isIntrinsicFunction(propValue))) {
          const { length, offset } = prop.valueNode
          const range = Range.create(document.positionAt(offset), document.positionAt(offset + length))

          diagnostics.push(Diagnostic.create(range, MESSAGES.INVALID_JSON_PATH_OR_INTRINSIC, DiagnosticSeverity.Error))
        }
      } else if (prop.valueNode && isObjectNode(prop.valueNode)) {
        diagnostics = diagnostics.concat(validateParameters(prop, document))
      }
    })
  }

  return diagnostics
}