beforeDeserialize method

  1. @override
Object? beforeDeserialize(
  1. Object? object,
  2. FullType specifiedType
)
override

Implementation

@override
Object? beforeDeserialize(Object? object, FullType specifiedType) {
  if (specifiedType.root != DateTime || !applyDecode) return object;
  try {
    if (object is num) {
      return DateTime.fromMicrosecondsSinceEpoch(object as int).microsecondsSinceEpoch;
    } else if (object is String) {
      return DateTime.parse(object).toUtc().microsecondsSinceEpoch;
    } else if (object is DateTime) {
      return object.microsecondsSinceEpoch;
    }
    return object;
  } catch (e) {
    if (nullOnInvalid) {
      return null;
    }
    rethrow;
  }
}