/**
 * Parse the d property of an SVG path into an array of drawing commands.
 * @param  {String} d SvgPath d attribute.]
 * @return {Array} an array of drawing commands.
 */
export function parseSvgPath(d) {
  //jshint ignore:line
  'use strict'

  var commands = []
  var commandTokens = ['M', 'L', 'I', 'H', 'V', 'C', 'S', 'Q', 'T', 'A']
  var command
  var in_x = false
  var in_y = false
  var x = ''
  var y = ''
  for (var i = 0; i <= d.length; i++) {
    if (commandTokens.indexOf(d[i]) !== -1) {
      if (in_x || in_y) {
        commands.push({ command: command, x: x, y: y })
        x = ''
        y = ''
      }
      command = d[i]
      in_x = true
      in_y = false
    } else {
      if (d[i] === ',') {
        if (in_y) {
          commands.push({ command: command, x: x, y: y })
          x = ''
          y = ''
        }
        in_x = !in_x
        in_y = !in_y
      } else if (in_x) {
        x += d[i]
      } else if (in_y) {
        y += d[i]
      }
    }
  }
  if (d[i] !== ',' && in_y) {
    commands.push({ command: command, x: x, y: y })
  }
  return commands
}
