Skip to content

Commit c901ef1

Browse files
authored
shelf_router_generator: Latest dependencies, null safety (google#122)
Prepare for shelf_router_generator v1 Fixes google#119
1 parent 36e93a3 commit c901ef1

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

shelf_router_generator/CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
## v1.0.0-dev
1+
## v1.0.0
22

33
* Support update-to-date dependencies.
4+
* Migrate implementation to null safety.
45
* Generate null-safe code.
56

67
## v0.7.2+4

shelf_router_generator/lib/src/shelf_router_generator.dart

+9-10
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import 'package:analyzer/dart/element/type.dart' show ParameterizedType;
2020
import 'package:build/build.dart' show BuildStep, log;
2121
import 'package:code_builder/code_builder.dart' as code;
2222
import 'package:http_methods/http_methods.dart' show isHttpMethod;
23-
import 'package:meta/meta.dart';
2423
import 'package:shelf/shelf.dart' as shelf;
2524
import 'package:shelf_router/shelf_router.dart' as shelf_router;
2625

@@ -49,13 +48,13 @@ List<ExecutableElement> getAnnotatedElementsOrderBySourceOffset(
4948
<ExecutableElement>[
5049
...cls.methods.where(_routeType.hasAnnotationOfExact),
5150
...cls.accessors.where(_routeType.hasAnnotationOfExact)
52-
]..sort((a, b) => (a.nameOffset ?? -1).compareTo(b.nameOffset ?? -1));
51+
]..sort((a, b) => (a.nameOffset).compareTo(b.nameOffset));
5352

5453
/// Generate a `_$<className>Router(<className> service)` method that returns a
5554
/// [shelf_router.Router] configured based on annotated handlers.
5655
code.Method _buildRouterMethod({
57-
@required ClassElement classElement,
58-
@required List<_Handler> handlers,
56+
required ClassElement classElement,
57+
required List<_Handler> handlers,
5958
}) =>
6059
code.Method(
6160
(b) => b
@@ -81,9 +80,9 @@ code.Method _buildRouterMethod({
8180

8281
/// Generate the code statement that adds [handler] from [service] to [router].
8382
code.Code _buildAddHandlerCode({
84-
@required code.Reference router,
85-
@required code.Reference service,
86-
@required _Handler handler,
83+
required code.Reference router,
84+
required code.Reference service,
85+
required _Handler handler,
8786
}) {
8887
switch (handler.verb) {
8988
case r'$mount':
@@ -107,7 +106,7 @@ code.Code _buildAddHandlerCode({
107106

108107
class ShelfRouterGenerator extends g.Generator {
109108
@override
110-
Future<String> generate(g.LibraryReader library, BuildStep buildStep) async {
109+
Future<String?> generate(g.LibraryReader library, BuildStep buildStep) async {
111110
// Create a map from ClassElement to list of annotated elements sorted by
112111
// offset in source code, this is not type checked yet.
113112
final classes = <ClassElement, List<_Handler>>{};
@@ -120,8 +119,8 @@ class ShelfRouterGenerator extends g.Generator {
120119

121120
classes[cls] = elements
122121
.map((e) => _routeType.annotationsOfExact(e).map((a) => _Handler(
123-
a.getField('verb').toStringValue(),
124-
a.getField('route').toStringValue(),
122+
a.getField('verb')!.toStringValue()!,
123+
a.getField('route')!.toStringValue()!,
125124
e,
126125
)))
127126
.expand((i) => i)

shelf_router_generator/pubspec.yaml

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: shelf_router_generator
2-
version: 1.0.0-dev
2+
version: 1.0.0
33
description: |
44
A package:build compatible builder for generating request routers for the
55
shelf web-framework based on source annotations.
@@ -10,20 +10,19 @@ issue_tracker: https://github.com/google/dart-neats/labels/pkg:shelf_router_gene
1010
dependencies:
1111
analyzer: ^1.2.0
1212
build: ^2.0.0
13-
build_config: ^0.4.0
14-
code_builder: ^3.2.0
13+
build_config: ^1.0.0
14+
code_builder: ^4.0.0
1515
http_methods: ^1.0.0
16-
meta: ^1.1.7
1716
shelf: ^1.1.0
1817
shelf_router: ^1.0.0
1918
source_gen: ^1.0.0
2019

2120
dev_dependencies:
22-
build_runner: ^1.4.0
21+
build_runner: ^2.0.0
2322
build_verify: ^2.0.0
2423
http: ^0.13.0
2524
pedantic: ^1.4.0
2625
test: ^1.5.3
2726

2827
environment:
29-
sdk: '>=2.11.99 <3.0.0'
28+
sdk: '>=2.12.0 <3.0.0'

0 commit comments

Comments
 (0)