ebemunk/node-uci

View on GitHub
src/parseUtil/parseInfo.js

Summary

Maintainability
A
0 mins
Test Coverage
import forEach from 'lodash/forEach'
import isEmpty from 'lodash/isEmpty'

import { REGEX, INFO_NUMBER_TYPES } from '../const'

export default function parseInfo(line) {
  const info = {}
  forEach(REGEX.info, (val, key) => {
    const parsed = val.exec(line)
    if (!parsed) return
    switch (key) {
      case 'score':
        info[key] = {
          unit: parsed[1],
          value: parseFloat(parsed[2]),
        }
        break
      default:
        if (INFO_NUMBER_TYPES.includes(key)) {
          info[key] = parseFloat(parsed[1])
        } else {
          info[key] = parsed[1]
        }
    }
  })
  if (isEmpty(info)) {
    return
  }
  return info
}