function value()

in app/assets/javascripts/glql/core/sorter.js [36:58]


function value(fieldValue, fieldName = null) {
  if (fieldValue === null || typeof fieldValue === 'undefined') return null;

  const val =
    // eslint-disable-next-line no-underscore-dangle
    valueByType(fieldValue, fieldValue.__typename) || valueByFieldName(fieldValue, fieldName);
  if (val) return val;

  if (typeof fieldValue === 'boolean' || typeof fieldValue === 'number') return fieldValue;
  if (typeof fieldValue === 'string' && String(Number(fieldValue)) === fieldValue)
    return Number(fieldValue);
  if (typeof fieldValue === 'object' && Array.isArray(fieldValue.nodes))
    return fieldValue.nodes.map(value).join(',') || null;

  if (typeof fieldValue === 'object') return fieldValue.title;
  if (
    typeof fieldValue === 'string' &&
    fieldValue.match(/^\d{4}-\d{2}-\d{2}/) /* date YYYY-MM-DD */
  )
    return new Date(fieldValue);

  return fieldValue;
}