fromClassElement static method

SpecDefinitionOptions? fromClassElement(
  1. ClassElement classElement
)

Implementation

static SpecDefinitionOptions? fromClassElement(ClassElement classElement) {
  final annotation =
      _specDefinitionTypeChecker.firstAnnotationOfExact(classElement);

  if (annotation == null) {
    return null;
  }
  final name =
      annotation.getField('name')?.toStringValue() ?? classElement.name;

  final params = classElement.unnamedConstructor?.parameters ?? [];

  validateOrThrowHasAnyFields(classElement.fields);
  validOrThrowIfHasRequiredParameters(params);

  final fields = params
      .where((field) => !field.isSynthetic)
      .map(FieldInfo.fromParam)
      .toList()
    ..add(FieldInfo.animatedField())
    ..sort((a, b) => a.name.compareTo(b.name));

  return SpecDefinitionOptions(name: name, fields: fields);
}