convertValue<T> function

dynamic convertValue<T>(
  1. dynamic value,
  2. String returnType
)

Implementation

dynamic convertValue<T>(dynamic value, String returnType) {
  try {
    switch (returnType.toLowerCase()) {
      case 'int':
        if (value is String) {
          return int.tryParse(value) ?? 0;
        } else if (value is double) {
          return value.toInt();
        } else if (value is int) {
          return value;
        }
        return 0;

      case 'double':
        if (value is String) {
          return double.tryParse(value) ?? 0.0;
        } else if (value is int) {
          return value.toDouble();
        } else if (value is double) {
          return value;
        }
        return 0.0;

      case 'string':
        return value?.toString() ?? '';

      case 'bool':
        if (value is String) {
          return bool.tryParse(value);
        } else if (value is bool) {
          return value;
        }
        return false;

      default:
        return value;
    }
  } catch (e) {
    // Handle any unexpected errors during conversion
    switch (returnType.toLowerCase()) {
      case 'int':
        return 0;
      case 'double':
        return 0.0;
      case 'string':
        return '';
      default:
        return value;
    }
  }
}