getQuery<T> method
Gets a query parameter with type conversion.
Supports common types: int, double, bool, String, List<String>. Returns null if the parameter doesn't exist or can't be converted.
Implementation
T? getQuery<T>(String key, {T? defaultValue}) {
final value = _raw.uri.queryParameters[key];
if (value == null || value.isEmpty) {
return defaultValue;
}
try {
if (T == int) {
return int.tryParse(value) as T?;
} else if (T == double) {
return double.tryParse(value) as T?;
} else if (T == bool) {
if (value.toLowerCase() == 'true' || value == '1') return true as T?;
if (value.toLowerCase() == 'false' || value == '0') return false as T?;
return null;
} else if (T == String) {
return value as T?;
} else if (T == List<String>) {
return value.split(',').map((s) => s.trim()).toList() as T?;
}
} catch (_) {
// Return default value on parsing error
}
return defaultValue;
}