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

Function isValueCompatibleWithType

apps/sim/lib/table/columns/service.ts:634–668  ·  view source on GitHub ↗

* Checks if a value is compatible with a target column type.

(
  value: unknown,
  targetType: (typeof COLUMN_TYPES)[number]
)

Source from the content-addressed store, hash-verified

632 * Checks if a value is compatible with a target column type.
633 */
634function isValueCompatibleWithType(
635 value: unknown,
636 targetType: (typeof COLUMN_TYPES)[number]
637): boolean {
638 if (value === null || value === undefined) return true
639
640 switch (targetType) {
641 case 'string':
642 return true
643 case 'number': {
644 if (typeof value === 'number') return Number.isFinite(value)
645 if (typeof value === 'string') {
646 const num = Number(value)
647 return Number.isFinite(num) && value.trim() !== ''
648 }
649 return false
650 }
651 case 'boolean': {
652 if (typeof value === 'boolean') return true
653 if (typeof value === 'string')
654 return ['true', 'false', '1', '0'].includes(value.toLowerCase())
655 if (typeof value === 'number') return value === 0 || value === 1
656 return false
657 }
658 case 'date': {
659 if (value instanceof Date) return !Number.isNaN(value.getTime())
660 if (typeof value === 'string') return !Number.isNaN(Date.parse(value))
661 return false
662 }
663 case 'json':
664 return true
665 default:
666 return false
667 }
668}

Callers 1

updateColumnTypeFunction · 0.85

Calls 1

parseMethod · 0.80

Tested by

no test coverage detected