Create GenerateReflectorReader
This commit is contained in:
parent
271db26179
commit
c0d526ef57
2 changed files with 49 additions and 0 deletions
35
angel_container_generator/lib/src/util.dart
Normal file
35
angel_container_generator/lib/src/util.dart
Normal file
|
@ -0,0 +1,35 @@
|
|||
import 'package:analyzer/dart/constant/value.dart';
|
||||
import 'package:analyzer/dart/element/type.dart';
|
||||
import 'package:angel_container/angel_container.dart';
|
||||
import 'package:source_gen/source_gen.dart';
|
||||
|
||||
const TypeChecker generateReflectorTypeChecker =
|
||||
const TypeChecker.fromRuntime(GenerateReflector);
|
||||
|
||||
/// Reads data from a [GenerateReflector] annotation.
|
||||
class GenerateReflectorReader {
|
||||
final ConstantReader constantReader;
|
||||
|
||||
GenerateReflectorReader(this.constantReader);
|
||||
|
||||
String get name => constantReader.peek('name')?.stringValue;
|
||||
|
||||
List<DartType> get types =>
|
||||
constantReader
|
||||
.peek('types')
|
||||
?.listValue
|
||||
?.map((o) => ConstantReader(o).typeValue)
|
||||
?.toList() ??
|
||||
<DartType>[];
|
||||
|
||||
List<Symbol> get symbols =>
|
||||
constantReader
|
||||
.peek('symbols')
|
||||
?.listValue
|
||||
?.map((o) => ConstantReader(o).symbolValue)
|
||||
?.toList() ??
|
||||
<Symbol>[];
|
||||
|
||||
List<DartObject> get functions =>
|
||||
constantReader.peek('functions')?.listValue ?? <DartObject>[];
|
||||
}
|
14
angel_container_generator/pubspec.yaml
Normal file
14
angel_container_generator/pubspec.yaml
Normal file
|
@ -0,0 +1,14 @@
|
|||
name: angel_container_generator
|
||||
version: 1.0.0-alpha
|
||||
author: Tobe O <thosakwe@gmail.com>
|
||||
description: Code generator that generates `Reflector` subclasses. Use this to run Angel applications on Flutter, where reflection via `dart:mirrors` is disallowed.
|
||||
homepage: https://github.com/angel-dart/container.git
|
||||
environment:
|
||||
sdk: ">=2.0.0-dev <3.0.0"
|
||||
dependencies:
|
||||
angel_container: ^1.0.0-alpha
|
||||
build: ^0.12.0
|
||||
build_config: ^0.3.0
|
||||
source_gen: ^0.9.0
|
||||
dev_dependencies:
|
||||
build_runner: ^0.10.0
|
Loading…
Reference in a new issue