Skip to content

Commit f9f5a0b

Browse files
authored
Merge pull request #4 from peterzagoranski/migrate-null-safety
migrating code to null safety
2 parents e8b31ca + e3181e0 commit f9f5a0b

File tree

6 files changed

+100
-86
lines changed

6 files changed

+100
-86
lines changed

example/lib/main.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import 'package:flutter/cupertino.dart';
22
import 'package:flutter/material.dart';
3-
import 'package:flutter_router/flutter_router.dart';
3+
import 'package:flutter_router/flutter_router.dart' as FRouter;
44

55
void main() => runApp(MaterialApp(
6-
onGenerateRoute: Router({
7-
'/accounts/{id}': (context, match) => Account(match.parameters['id']),
6+
onGenerateRoute: FRouter.Router({
7+
'/accounts/{id}': (context, match) => Account(match!.parameters['id']!),
88
'/': (context, match) => Index(),
99
}).get,
1010
));

example/pubspec.lock

Lines changed: 40 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,55 @@
11
# Generated by pub
2-
# See https://www.dartlang.org/tools/pub/glossary#lockfile
2+
# See https://dart.dev/tools/pub/glossary#lockfile
33
packages:
44
async:
55
dependency: transitive
66
description:
77
name: async
88
url: "https://pub.dartlang.org"
99
source: hosted
10-
version: "2.0.8"
10+
version: "2.5.0"
1111
boolean_selector:
1212
dependency: transitive
1313
description:
1414
name: boolean_selector
1515
url: "https://pub.dartlang.org"
1616
source: hosted
17-
version: "1.0.4"
17+
version: "2.1.0"
18+
characters:
19+
dependency: transitive
20+
description:
21+
name: characters
22+
url: "https://pub.dartlang.org"
23+
source: hosted
24+
version: "1.1.0"
1825
charcode:
1926
dependency: transitive
2027
description:
2128
name: charcode
2229
url: "https://pub.dartlang.org"
2330
source: hosted
24-
version: "1.1.2"
31+
version: "1.2.0"
32+
clock:
33+
dependency: transitive
34+
description:
35+
name: clock
36+
url: "https://pub.dartlang.org"
37+
source: hosted
38+
version: "1.1.0"
2539
collection:
2640
dependency: transitive
2741
description:
2842
name: collection
2943
url: "https://pub.dartlang.org"
3044
source: hosted
31-
version: "1.14.11"
45+
version: "1.15.0"
46+
fake_async:
47+
dependency: transitive
48+
description:
49+
name: fake_async
50+
url: "https://pub.dartlang.org"
51+
source: hosted
52+
version: "1.2.0"
3253
flutter:
3354
dependency: "direct main"
3455
description: flutter
@@ -52,35 +73,28 @@ packages:
5273
name: matcher
5374
url: "https://pub.dartlang.org"
5475
source: hosted
55-
version: "0.12.3+1"
76+
version: "0.12.10"
5677
meta:
5778
dependency: transitive
5879
description:
5980
name: meta
6081
url: "https://pub.dartlang.org"
6182
source: hosted
62-
version: "1.1.6"
83+
version: "1.3.0"
6384
path:
6485
dependency: transitive
6586
description:
6687
name: path
6788
url: "https://pub.dartlang.org"
6889
source: hosted
69-
version: "1.6.2"
70-
pedantic:
71-
dependency: transitive
72-
description:
73-
name: pedantic
74-
url: "https://pub.dartlang.org"
75-
source: hosted
76-
version: "1.4.0"
90+
version: "1.8.0"
7791
quiver:
7892
dependency: transitive
7993
description:
8094
name: quiver
8195
url: "https://pub.dartlang.org"
8296
source: hosted
83-
version: "2.0.1"
97+
version: "3.0.1"
8498
sky_engine:
8599
dependency: transitive
86100
description: flutter
@@ -92,69 +106,62 @@ packages:
92106
name: source_span
93107
url: "https://pub.dartlang.org"
94108
source: hosted
95-
version: "1.5.3"
109+
version: "1.8.0"
96110
stack_trace:
97111
dependency: transitive
98112
description:
99113
name: stack_trace
100114
url: "https://pub.dartlang.org"
101115
source: hosted
102-
version: "1.9.3"
116+
version: "1.10.0"
103117
stream_channel:
104118
dependency: transitive
105119
description:
106120
name: stream_channel
107121
url: "https://pub.dartlang.org"
108122
source: hosted
109-
version: "1.6.8"
123+
version: "2.1.0"
110124
string_scanner:
111125
dependency: transitive
112126
description:
113127
name: string_scanner
114128
url: "https://pub.dartlang.org"
115129
source: hosted
116-
version: "1.0.4"
130+
version: "1.1.0"
117131
term_glyph:
118132
dependency: transitive
119133
description:
120134
name: term_glyph
121135
url: "https://pub.dartlang.org"
122136
source: hosted
123-
version: "1.1.0"
137+
version: "1.2.0"
124138
test_api:
125139
dependency: transitive
126140
description:
127141
name: test_api
128142
url: "https://pub.dartlang.org"
129143
source: hosted
130-
version: "0.2.2"
144+
version: "0.2.19"
131145
typed_data:
132146
dependency: transitive
133147
description:
134148
name: typed_data
135149
url: "https://pub.dartlang.org"
136150
source: hosted
137-
version: "1.1.6"
151+
version: "1.3.0"
138152
uri:
139153
dependency: transitive
140154
description:
141155
name: uri
142156
url: "https://pub.dartlang.org"
143157
source: hosted
144-
version: "0.11.3+1"
145-
utf:
146-
dependency: transitive
147-
description:
148-
name: utf
149-
url: "https://pub.dartlang.org"
150-
source: hosted
151-
version: "0.9.0+5"
158+
version: "1.0.0"
152159
vector_math:
153160
dependency: transitive
154161
description:
155162
name: vector_math
156163
url: "https://pub.dartlang.org"
157164
source: hosted
158-
version: "2.0.8"
165+
version: "2.1.0"
159166
sdks:
160-
dart: ">=2.1.0 <3.0.0"
167+
dart: ">=2.12.0 <3.0.0"

example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ authors:
66
homepage: https://github.com/peterzagoranski/flutter_router
77

88
environment:
9-
sdk: ">=2.0.0-dev.68.0 <3.0.0"
9+
sdk: '>=2.12.0 <3.0.0'
1010

1111
dependencies:
1212
flutter:

lib/flutter_router.dart

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,44 +4,44 @@ import 'package:flutter/cupertino.dart';
44
import 'package:flutter/material.dart';
55
import 'package:uri/uri.dart';
66

7-
typedef Widget RouterBuilder(BuildContext context, UriMatch match);
7+
typedef Widget RouterBuilder(BuildContext context, UriMatch? match);
88

99
class Router extends _Router {
10-
Router(final Map<String, RouterBuilder> definitions) : super(definitions, page: <Null>(settings, builder) => new MaterialPageRoute<Null>(builder: builder, settings: settings));
10+
Router(final Map<String, RouterBuilder> definitions) : super(definitions, page: (<Null>(settings, builder) => new MaterialPageRoute<Null>(builder: builder, settings: settings)));
1111
}
1212

1313
class CupertinoRouter extends _Router {
14-
CupertinoRouter(final Map<String, RouterBuilder> definitions) : super(definitions, page: <Null>(settings, builder) => new CupertinoPageRoute<Null>(settings: settings, builder: builder));
14+
CupertinoRouter(final Map<String, RouterBuilder> definitions) : super(definitions, page: (<Null>(settings, builder) => new CupertinoPageRoute<Null>(settings: settings, builder: builder)));
1515
}
1616

1717
abstract class _Router {
1818

19-
_Router(final Map<String, RouterBuilder> definitions, { this.page }) : assert(null != definitions), assert(null != page), this.definitions = definitions;
19+
_Router(final Map<String, RouterBuilder> definitions, { required this.page }) : this.definitions = definitions;
2020

21-
Route<dynamic> get(final RouteSettings settings) {
22-
final matches = this.definitions.keys.where((route) => UriParser(UriTemplate(route)).matches(Uri.parse(settings.name)));
23-
final route = null != matches && matches.length > 0 ? matches.first : null;
21+
Route<dynamic>? get(final RouteSettings settings) {
22+
final matches = this.definitions.keys.where((route) => UriParser(UriTemplate(route)).matches(Uri.parse(settings.name!)));
23+
final route = matches.length > 0 ? matches.first : null;
2424

25-
return null != route ? this.page(settings, (context)=> this.definitions[route](context, UriParser(UriTemplate(route)).match(Uri.parse(settings.name)))) : null;
25+
return null != route ? this.page(settings, (context)=> this.definitions[route]!(context, UriParser(UriTemplate(route)).match(Uri.parse(settings.name!)))) : null;
2626
}
2727

2828
final Map<String, RouterBuilder> definitions;
2929
final PageRouteFactory page;
3030
}
3131

3232
class Navigators extends _Navigators {
33-
Navigators(final List<Navigator> navigators) : super(navigators, page: <Null>(settings, builder) => MaterialPageRoute<Null>(settings: settings, builder: builder));
33+
Navigators(final List<Navigator> navigators) : super(navigators, page: (<Null>(settings, builder) => MaterialPageRoute<Null>(settings: settings, builder: builder)));
3434
}
3535

3636
abstract class _Navigators {
37-
_Navigators(this.navigators, { this.page }) : assert(null != navigators || null != page);
37+
_Navigators(this.navigators, { this.page }) : assert( null != page);
3838

39-
Route<dynamic> get(final RouteSettings settings) {
40-
final matches = this.navigators.where((navigator) => navigator.initialRoute.startsWith(settings.name));
39+
Route<dynamic>? get(final RouteSettings settings) {
40+
final matches = this.navigators.where((navigator) => navigator.initialRoute!.startsWith(settings.name!));
4141

42-
return null != matches && matches.length > 0 ? this.page(settings, (context) => matches.first) : null;
42+
return matches.length > 0 ? this.page!(settings, (context) => matches.first) : null;
4343
}
4444

4545
final List<Navigator> navigators;
46-
final PageRouteFactory page;
46+
final PageRouteFactory? page;
4747
}

0 commit comments

Comments
 (0)