firstWhere<T extends Model> static method
Returns first record matching where() condition.
Implementation
static Future<T?> firstWhere<T extends Model>({
required String field,
String comp = "==",
dynamic value,
}) async {
final constructor = _jsonConstructors[T];
if (constructor == null) return null;
try {
final records = await jsonIndex<T>();
final record = records.firstWhereOrNull((r) {
final fieldValue = r[field];
switch (comp) {
case "==":
return fieldValue == value;
case "!=":
return fieldValue != value;
case ">":
return fieldValue is num && fieldValue > value;
case "<":
return fieldValue is num && fieldValue < value;
case ">=":
return fieldValue is num && fieldValue >= value;
case "<=":
return fieldValue is num && fieldValue <= value;
default:
return false;
}
});
if (record == null) return null;
return constructor(record) as T;
} catch (e) {
return null;
}
}