ice.fo.utils
Version:
39 lines (29 loc) • 991 B
JavaScript
import _get from 'lodash/get'
import { formatStringValue } from './StringUtils'
import { formatTextCurrency, formatTextNumber } from './NumberUtils'
import { makeFilterFunction } from './DateUtils'
const parseFuncs = {
currency: formatTextCurrency,
number: formatTextNumber,
date: makeFilterFunction('YYYY.MM.DD'),
time: makeFilterFunction('HH:mm'),
datetime: makeFilterFunction('YYYY-MM-DD HH:mm'),
}
export function parseDataMap ({ data, from, format }) {
from = (from || '').trim()
if (parseFuncs[format]) {
return parseFuncs[format](_get(data, from))
}
return format ? formatStringValue(data, format, parseFuncs) : _get(data, from)
}
export function parseDynamicString ({ pattern, context, patternPrefix }) {
if (!pattern) {
return ''
}
const prefix = '#{'
const suffix = '}'
if (patternPrefix) {
pattern = pattern.replace(/#{[ ]{0,}/g, prefix + patternPrefix + '.')
}
return formatStringValue(context, pattern, {}, prefix, suffix)
}