MCPcopy
hub / github.com/simstudioai/sim / getDisplayValue

Function getDisplayValue

apps/sim/lib/workflows/subblocks/display.ts:186–312  ·  view source on GitHub ↗
(value: unknown)

Source from the content-addressed store, hash-verified

184 * objects and arrays.
185 */
186export const getDisplayValue = (value: unknown): string => {
187 if (value == null || value === '') return '-'
188
189 const parsedValue = tryParseJson(value)
190
191 if (isMessagesArray(parsedValue)) {
192 const firstMessage = parsedValue[0]
193 if (!firstMessage?.content || firstMessage.content.trim() === '') return '-'
194 const content = firstMessage.content.trim()
195 return truncate(content, 50)
196 }
197
198 if (isVariableAssignmentsArray(parsedValue)) {
199 const names = parsedValue.map((a) => a.variableName).filter((name): name is string => !!name)
200 return summarizeNames(names) ?? '-'
201 }
202
203 if (isTagFilterArray(parsedValue)) {
204 const names = parsedValue
205 .filter((f) => typeof f.tagName === 'string' && f.tagName.trim() !== '')
206 .map((f) => f.tagName)
207 return summarizeNames(names) ?? '-'
208 }
209
210 if (isDocumentTagArray(parsedValue)) {
211 const names = parsedValue
212 .filter((t) => typeof t.tagName === 'string' && t.tagName.trim() !== '')
213 .map((t) => t.tagName)
214 return summarizeNames(names) ?? '-'
215 }
216
217 if (isFilterConditionArray(parsedValue)) {
218 const opLabels: Record<string, string> = {
219 eq: '=',
220 ne: '≠',
221 gt: '>',
222 gte: '≥',
223 lt: '<',
224 lte: '≤',
225 contains: '~',
226 in: 'in',
227 }
228 const names = parsedValue
229 .filter((c) => typeof c.column === 'string' && c.column.trim() !== '')
230 .map((c) => `${c.column} ${opLabels[c.operator] || c.operator} ${c.value || '?'}`)
231 return summarizeNames(names) ?? '-'
232 }
233
234 if (isSortConditionArray(parsedValue)) {
235 const names = parsedValue
236 .filter((c) => typeof c.column === 'string' && c.column.trim() !== '')
237 .map((c) => `${c.column} ${c.direction === 'desc' ? '↓' : '↑'}`)
238 return summarizeNames(names) ?? '-'
239 }
240
241 if (isTableRowArray(parsedValue)) {
242 const nonEmptyRows = parsedValue.filter((row) => {
243 const cellValues = Object.values(row.cells)

Callers 3

display.test.tsFile · 0.90
workflow-block.tsxFile · 0.90

Calls 13

truncateFunction · 0.90
isRecordLikeFunction · 0.90
isMessagesArrayFunction · 0.85
summarizeNamesFunction · 0.85
isTagFilterArrayFunction · 0.85
isDocumentTagArrayFunction · 0.85
isFilterConditionArrayFunction · 0.85
isSortConditionArrayFunction · 0.85
isTableRowArrayFunction · 0.85
isFieldFormatArrayFunction · 0.85
joinMethod · 0.80

Tested by

no test coverage detected