MCPcopy Create free account
hub / github.com/FlowiseAI/Flowise / convertValue

Function convertValue

packages/components/src/utils.ts:2011–2084  ·  view source on GitHub ↗
(value: any, expected: string, received: string)

Source from the content-addressed store, hash-verified

2009
2010 // Helper function to convert value to expected type
2011 const convertValue = (value: any, expected: string, received: string): any => {
2012 // Expected string
2013 if (expected === 'string') {
2014 if (received === 'object' || received === 'array') {
2015 return JSON.stringify(value)
2016 }
2017 if (received === 'number' || received === 'boolean') {
2018 return String(value)
2019 }
2020 }
2021 // Expected number
2022 else if (expected === 'number') {
2023 if (received === 'string') {
2024 const parsed = parseFloat(value)
2025 if (!isNaN(parsed)) {
2026 return parsed
2027 }
2028 }
2029 if (received === 'boolean') {
2030 return value ? 1 : 0
2031 }
2032 }
2033 // Expected boolean
2034 else if (expected === 'boolean') {
2035 if (received === 'string') {
2036 const lower = String(value).toLowerCase().trim()
2037 if (lower === 'true' || lower === '1' || lower === 'yes') {
2038 return true
2039 }
2040 if (lower === 'false' || lower === '0' || lower === 'no') {
2041 return false
2042 }
2043 }
2044 if (received === 'number') {
2045 return value !== 0
2046 }
2047 }
2048 // Expected object
2049 else if (expected === 'object') {
2050 if (received === 'string') {
2051 try {
2052 const parsed = JSON.parse(value)
2053 if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
2054 return parsed
2055 }
2056 } catch {
2057 // Invalid JSON, return undefined to skip conversion
2058 }
2059 }
2060 }
2061 // Expected array
2062 else if (expected === 'array') {
2063 if (received === 'string') {
2064 try {
2065 const parsed = JSON.parse(value)
2066 if (Array.isArray(parsed)) {
2067 return parsed
2068 }

Callers 1

parseWithTypeConversionFunction · 0.85

Calls 3

stringifyMethod · 0.80
testMethod · 0.80
parseMethod · 0.65

Tested by

no test coverage detected