Ga naar hoofdinhoud

formatValue

Formats a raw value into a display string based on the schema property describing it. Designed for table cells — handles nulls, dates, booleans, arrays, numbers, UUIDs, URIs, and markdown.

Signature

import { formatValue } from '@conduction/nextcloud-vue'

formatValue(42, { type: 'integer' }) // "42"
formatValue(1500, { type: 'number' }) // "1,500" (uses toLocaleString)
formatValue(true, { type: 'boolean' }) // "✓"
formatValue(false, { type: 'boolean' }) // "—"
formatValue('2026-01-15T10:30:00Z', { type: 'string', format: 'date-time' })
// "15/01/2026, 10:30:00" (locale-dependent)
formatValue('2026-01-15', { type: 'string', format: 'date' })
// "15/01/2026"
formatValue(['a', 'b', 'c', 'd', 'e'], { type: 'array' }) // "a, b, c +2"
formatValue('ff14c8a0-5d2f-4f11-b08c-55c8f0b6a8f3', { type: 'string', format: 'uuid' })
// "ff14c8a0..."
formatValue(null) // "—"

Parameters

ArgTypeDefaultDescription
valueanyRaw value to format.
propertyobject{}Schema property descriptor. Only type, format, enum, items are consulted.
options.truncatenumber100Maximum length for string output before adding '...'. Applied to plain strings, URIs, and markdown.

Behaviour

ConditionOutput
null, undefined, '''—'
boolean or type: 'boolean''✓' / '—'
integer / numberNumber(value).toLocaleString(); String(value) when NaN
array (type or actual)length === 0'—'; <= 3join(', '); more → "a, b, c +N"
object'[Object]'
format: 'date-time'toLocaleDateString + ', ' + toLocaleTimeString
format: 'date'toLocaleDateString (day-month-year)
format: 'uuid'first 8 chars + '...'
format: 'uri' / 'url'hostname + first 20 chars of pathname; truncated raw string on parse failure
format: 'markdown'strips headings, bold/italic, links, code, newlines; then truncates
format: 'email'string as-is, no truncation
plain stringtruncated at options.truncate

Notes

  • Date strings that fail new Date() parsing are returned verbatim.
  • The function never throws — malformed URIs and dates fall back to truncated raw strings.