dynamic parseString(String value)

Source

dynamic parseString(String value) {
  if (new RegExp(r'^(?:\d+\.?\d*|\.\d+)$').hasMatch(value)) {
    return num.parse(value);
  }
  if (new RegExp(r'^true$').hasMatch(value)) {
    return true;
  }
  if (new RegExp(r'^false$').hasMatch(value)) {
    return false;
  }
  return value == '' ? null : value;
}