MCPcopy Index your code
hub / github.com/simstudioai/sim / extractWorkflowName

Function extractWorkflowName

apps/sim/lib/workflows/operations/import-export.ts:429–455  ·  view source on GitHub ↗
(content: string, filename: string)

Source from the content-addressed store, hash-verified

427}
428
429export function extractWorkflowName(content: string, filename: string): string {
430 try {
431 const parsed = unwrapWorkflowExportEnvelope(JSON.parse(content)) as Record<string, any>
432
433 if (parsed.state?.metadata?.name && typeof parsed.state.metadata.name === 'string') {
434 return parsed.state.metadata.name.trim()
435 }
436
437 if (parsed.workflow?.name && typeof parsed.workflow.name === 'string') {
438 return parsed.workflow.name.trim()
439 }
440 } catch {
441 // JSON parse failed, fall through to filename
442 }
443
444 let name = filename.replace(/\.json$/i, '')
445
446 name = name.replace(/-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, '')
447
448 name = name
449 .replace(/[-_]/g, ' ')
450 .split(' ')
451 .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
452 .join(' ')
453
454 return name.trim() || 'Imported Workflow'
455}
456
457/**
458 * Normalize subblock values by converting empty strings to null and repairing invalid subblocks.

Callers 3

importSingleWorkflowFunction · 0.90
persistImportedWorkflowFunction · 0.85

Calls 4

parseMethod · 0.80
joinMethod · 0.80
replaceMethod · 0.65

Tested by

no test coverage detected