Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions packages/go_router_builder/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2.2.1

* Cleans up go_router_builder code.

## 2.2.0

* Adds replace methods to the generated routes.
Expand Down
6 changes: 6 additions & 0 deletions packages/go_router_builder/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -379,3 +379,9 @@ class MyGoRouteData extends GoRouteData {
```

An example is available [here](https://github.com/flutter/packages/blob/main/packages/go_router_builder/example/lib/shell_route_with_keys_example.dart).

## Run tests

To run unit tests, run command `dart tool/run_tests.dart` from `packages/go_router_builder/`.

To run tests in examples, run `flutter test` from `packages/go_router_builder/example`.
38 changes: 19 additions & 19 deletions packages/go_router_builder/example/lib/all_types.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions packages/go_router_builder/example/lib/main.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 23 additions & 23 deletions packages/go_router_builder/example/lib/shell_route_example.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 13 additions & 18 deletions packages/go_router_builder/lib/src/go_router_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ const Map<String, String> _annotations = <String, String>{
};

/// A [Generator] for classes annotated with a typed go route annotation.
class GoRouterGenerator extends GeneratorForAnnotation<void> {
class GoRouterGenerator extends Generator {
/// Creates a new instance of [GoRouterGenerator].
const GoRouterGenerator();

@override
TypeChecker get typeChecker => TypeChecker.any(
TypeChecker get _typeChecker => TypeChecker.any(
_annotations.keys.map((String annotation) =>
TypeChecker.fromUrl('$_routeDataUrl#$annotation')),
);
Expand All @@ -34,11 +33,7 @@ class GoRouterGenerator extends GeneratorForAnnotation<void> {
final Set<String> values = <String>{};
final Set<String> getters = <String>{};

for (final String annotation in _annotations.keys) {
final TypeChecker typeChecker =
TypeChecker.fromUrl('$_routeDataUrl#$annotation');
_generateForAnnotation(library, typeChecker, buildStep, values, getters);
}
generateForAnnotation(library, values, getters);

if (values.isEmpty) {
return '';
Expand All @@ -54,19 +49,20 @@ ${getters.map((String e) => "$e,").join('\n')}
].join('\n\n');
}

void _generateForAnnotation(
/// Generates code for the `library` based on annotation.
///
/// This public method is for testing purposes and should not be called
/// directly.
void generateForAnnotation(
LibraryReader library,
TypeChecker typeChecker,
BuildStep buildStep,
Set<String> values,
Set<String> getters,
) {
for (final AnnotatedElement annotatedElement
in library.annotatedWith(typeChecker)) {
final InfoIterable generatedValue = generateForAnnotatedElement(
in library.annotatedWith(_typeChecker)) {
final InfoIterable generatedValue = _generateForAnnotatedElement(
annotatedElement.element,
annotatedElement.annotation,
buildStep,
);
getters.add(generatedValue.routeGetterName);
for (final String value in generatedValue) {
Expand All @@ -76,11 +72,9 @@ ${getters.map((String e) => "$e,").join('\n')}
}
}

@override
InfoIterable generateForAnnotatedElement(
InfoIterable _generateForAnnotatedElement(
Element element,
ConstantReader annotation,
BuildStep buildStep,
) {
final String typedAnnotation =
annotation.objectValue.type!.getDisplayString(withNullability: false);
Expand All @@ -105,6 +99,7 @@ ${getters.map((String e) => "$e,").join('\n')}
);
}

return RouteConfig.fromAnnotation(annotation, element).generateMembers();
return RouteBaseConfig.fromAnnotation(annotation, element)
.generateMembers();
}
}
Loading