$checkedNew<T> function

T $checkedNew<T>(
  1. String className,
  2. Map map,
  3. T constructor(), {
  4. Map<String, String>? fieldKeyMap,
})

Helper function used in generated code when JsonSerializableGenerator.checked is true.

Should not be used directly.

Implementation

T $checkedNew<T>(
  String className,
  Map map,
  T Function() constructor, {
  Map<String, String>? fieldKeyMap,
}) {
  fieldKeyMap ??= const {};

  try {
    return constructor();
  } on CheckedFromJsonException catch (e) {
    if (identical(e.map, map) && e._className == null) {
      e._className = className;
    }
    rethrow;
  } catch (error, stack) {
    String? key;
    if (error is ArgumentError) {
      key = fieldKeyMap[error.name] ?? error.name;
    } else if (error is MissingRequiredKeysException) {
      key = error.missingKeys.first;
    } else if (error is DisallowedNullValueException) {
      key = error.keysWithNullValues.first;
    }
    throw CheckedFromJsonException._(
      error,
      stack,
      map,
      key,
      className: className,
    );
  }
}