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