nc-photos/app/lib/json_util.dart

24 lines
637 B
Dart
Raw Normal View History

import 'dart:convert';
2022-01-25 11:08:13 +01:00
import 'package:nc_photos/object_extension.dart';
/// Convert a boolean to an indexable type in json for DB
///
/// This is needed because IndexedDB currently does not support creating an
/// index on a boolean value
Object? boolToJson(bool? value) => value?.run((v) => v ? 1 : 0);
/// Convert a boolean from an indexable type in json for DB
bool? boolFromJson(Object? value) => value?.run((v) => v != 0);
Object? tryJsonDecode(String source) {
try {
return jsonDecode(source);
} catch (_) {
return null;
}
}
Object? jsonDecodeOr(String source, dynamic def) =>
tryJsonDecode(source) ?? def;