defaultValueFromTypeDescriptor function

dynamic defaultValueFromTypeDescriptor({
  1. required $AT descriptor,
  2. $AClass? artifactClass,
  3. List<Enum> enumValues = const <Enum>[],
})

Implementation

dynamic defaultValueFromTypeDescriptor({
  required $AT descriptor,
  $AClass? artifactClass,
  List<Enum> enumValues = const <Enum>[],
}) {
  if (isNullableTypeDescriptor(descriptor)) {
    return null;
  }

  ListTypeInfo? nestedCollection = parseCollectionTypeDescriptor(descriptor);
  if (nestedCollection != null) {
    return materializeCollectionValue(nestedCollection, const <dynamic>[]);
  }

  MapTypeInfo? nestedMap = parseMapTypeDescriptor(descriptor);
  if (nestedMap != null) {
    return materializeMapValue(nestedMap, const <MapEntry<dynamic, dynamic>>[]);
  }

  $AClass? resolvedArtifact =
      artifactClass ?? resolveArtifactTypeFromDescriptor(descriptor);
  if (resolvedArtifact != null) {
    return resolvedArtifact.construct();
  }

  PrimitiveKind? kind = primitiveKindFromDescriptor(descriptor);
  if (kind != null) {
    return defaultPrimitiveValue(kind);
  }

  if (enumValues.isNotEmpty) {
    return enumValues.first;
  }

  return unsupportedTypeDefaultValue;
}