fromElement static method

ServerReflect? fromElement(
  1. Element? element
)

Implementation

static ServerReflect? fromElement(Element? element) {
  if (element == null) {
    return null;
  }

  if (element is! ClassElement) {
    return null;
  }

  if (element.library.isInSdk) {
    return null;
  }

  final className = element.displayName;

  final importPath = element.importPath;

  final metas = <String, List<ServerMimic>>{};

  for (final field in element.fields) {
    getAnnotations(
      element: field,
      onMatch: [
        OnMatch(
          classType: MetaData,
          package: 'revali_router_annotations',
          convert: (object, annotation) {
            final meta = ServerMimic.fromDartObject(object, annotation);
            if (field.name3 case final String name) {
              (metas[name] ??= []).add(meta);
            }
          },
        ),
      ],
    );
  }

  return ServerReflect(
    className: className,
    importPath: ServerImports([if (importPath != null) importPath]),
    metas: metas,
  );
}