mirror of
https://github.com/simstudioai/sim.git
synced 2026-02-17 01:42:43 -05:00
fix(variables): fix variables block json resolution (#1997)
This commit is contained in:
committed by
GitHub
parent
c2ccd51b3e
commit
6f29e2413c
@@ -127,33 +127,22 @@ export class VariablesBlockHandler implements BlockHandler {
|
||||
}
|
||||
|
||||
if (type === 'object' || type === 'array') {
|
||||
// If value is already an object or array, accept it as-is
|
||||
// The type hint is for UI purposes and string parsing, not runtime validation
|
||||
if (typeof value === 'object' && value !== null) {
|
||||
if (type === 'array' && !Array.isArray(value)) {
|
||||
throw new Error(
|
||||
`Invalid array value for variable "${variableName || 'unknown'}": expected an array, got an object`
|
||||
)
|
||||
}
|
||||
if (type === 'object' && Array.isArray(value)) {
|
||||
throw new Error(
|
||||
`Invalid object value for variable "${variableName || 'unknown'}": expected an object, got an array`
|
||||
)
|
||||
}
|
||||
return value
|
||||
}
|
||||
// If it's a string, try to parse it as JSON
|
||||
if (typeof value === 'string' && value.trim()) {
|
||||
try {
|
||||
const parsed = JSON.parse(value)
|
||||
if (type === 'array' && !Array.isArray(parsed)) {
|
||||
throw new Error(
|
||||
`Invalid array value for variable "${variableName || 'unknown'}": parsed value is not an array`
|
||||
)
|
||||
// Accept any valid JSON object or array
|
||||
if (typeof parsed === 'object' && parsed !== null) {
|
||||
return parsed
|
||||
}
|
||||
if (type === 'object' && (Array.isArray(parsed) || typeof parsed !== 'object')) {
|
||||
throw new Error(
|
||||
`Invalid object value for variable "${variableName || 'unknown'}": parsed value is not an object`
|
||||
)
|
||||
}
|
||||
return parsed
|
||||
throw new Error(
|
||||
`Invalid JSON for variable "${variableName || 'unknown'}": parsed value is not an object or array`
|
||||
)
|
||||
} catch (error: any) {
|
||||
throw new Error(
|
||||
`Invalid JSON for variable "${variableName || 'unknown'}": ${error.message}`
|
||||
|
||||
Reference in New Issue
Block a user