INNER CODE UNIT · TypeScript
accessorExpression
f5/unovis · packages/mcp/src/codegen/index.ts:88
function accessorExpression (ref: AccessorRef, emit: Emit): string {
if ('$field' in ref) {
const access = `d.${/^[A-Za-z_$][\w$]*$/.test(ref.$field) ? ref.$field : `['${ref.$field}']`}`
if (ref.as === 'date') return `d => new Date(${access}).getTime()`
return `d => ${access}`
}
if ('$index' in ref) return '(d, i) => i'
if ('$const' in ref) return `() => ${json(ref.$const)}`
if ('$numTickFormat' in ref) {
addHelper(emit, "const formatNumber = (value: number | Date): string =>\n Number(value).toLocaleString('en-US', { maximumFractionDigits: 6 })")
return 'formatNumber'
}
if ('$dateTickFormat' in ref) {
addHelper(emit, "const formatDate = (value: number | Date): string =>\n new Date(Number(value)).toLocaleDateString('en-US', { month: 'short', day: 'numeric', timeZone: 'UTC' })")
return 'formatDate'
}
if ('$lookup' in ref) {
addHelper(emit, `const categories = ${json(ref.$lookup)}`)