Require Dart 2.19, enable and fix new team lints (dart-lang/http_multi_server#51)
diff --git a/pkgs/http_multi_server/.github/workflows/test-package.yml b/pkgs/http_multi_server/.github/workflows/test-package.yml
index b552d6a..f8d94da 100644
--- a/pkgs/http_multi_server/.github/workflows/test-package.yml
+++ b/pkgs/http_multi_server/.github/workflows/test-package.yml
@@ -47,7 +47,7 @@
matrix:
# Add macos-latest and/or windows-latest if relevant for this package.
os: [ubuntu-latest]
- sdk: [2.12.0, dev]
+ sdk: [2.19.0, dev]
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: dart-lang/setup-dart@a57a6c04cf7d4840e88432aad6281d1e125f0d46
diff --git a/pkgs/http_multi_server/CHANGELOG.md b/pkgs/http_multi_server/CHANGELOG.md
index 3988a6a..70b7abd 100644
--- a/pkgs/http_multi_server/CHANGELOG.md
+++ b/pkgs/http_multi_server/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.2.2-dev
+
+* Require Dart 2.19
+
## 3.2.1
* Populate the pubspec `repository` field.
diff --git a/pkgs/http_multi_server/analysis_options.yaml b/pkgs/http_multi_server/analysis_options.yaml
index 055ac10..9076448 100644
--- a/pkgs/http_multi_server/analysis_options.yaml
+++ b/pkgs/http_multi_server/analysis_options.yaml
@@ -1,5 +1,32 @@
-include: package:lints/recommended.yaml
+include: package:dart_flutter_team_lints/analysis_options.yaml
analyzer:
language:
strict-casts: true
+
+linter:
+ rules:
+ - avoid_bool_literals_in_conditional_expressions
+ - avoid_classes_with_only_static_members
+ - avoid_private_typedef_functions
+ - avoid_redundant_argument_values
+ - avoid_returning_null
+ - avoid_returning_null_for_future
+ - avoid_returning_this
+ - avoid_unused_constructor_parameters
+ - cancel_subscriptions
+ - cascade_invocations
+ - comment_references
+ - join_return_with_assignment
+ - literal_only_boolean_expressions
+ - no_adjacent_strings_in_list
+ - no_runtimeType_toString
+ - package_api_docs
+ - prefer_const_constructors
+ - prefer_const_declarations
+ - prefer_expression_function_bodies
+ - prefer_final_locals
+ - prefer_relative_imports
+ - test_types_in_equals
+ - use_string_buffers
+ - use_super_parameters
diff --git a/pkgs/http_multi_server/example/main.dart b/pkgs/http_multi_server/example/main.dart
index 00f9515..661b52e 100644
--- a/pkgs/http_multi_server/example/main.dart
+++ b/pkgs/http_multi_server/example/main.dart
@@ -5,8 +5,9 @@
void main() async {
// Both http://127.0.0.1:8080 and http://[::1]:8080 will be bound to the same
// server.
- var server = await HttpMultiServer.loopback(8080);
- shelf_io.serveRequests(server, (request) {
- return shelf.Response.ok('Hello, world!');
- });
+ final server = await HttpMultiServer.loopback(8080);
+ shelf_io.serveRequests(
+ server,
+ (request) => shelf.Response.ok('Hello, world!'),
+ );
}
diff --git a/pkgs/http_multi_server/lib/http_multi_server.dart b/pkgs/http_multi_server/lib/http_multi_server.dart
index 5f23947..18fba33 100644
--- a/pkgs/http_multi_server/lib/http_multi_server.dart
+++ b/pkgs/http_multi_server/lib/http_multi_server.dart
@@ -106,29 +106,27 @@
///
/// See [HttpServer.bind].
static Future<HttpServer> loopback(int port,
- {int backlog = 0, bool v6Only = false, bool shared = false}) {
- return _loopback(
- port,
- (address, port) => HttpServer.bind(address, port,
- backlog: backlog, v6Only: v6Only, shared: shared));
- }
+ {int backlog = 0, bool v6Only = false, bool shared = false}) =>
+ _loopback(
+ port,
+ (address, port) => HttpServer.bind(address, port,
+ backlog: backlog, v6Only: v6Only, shared: shared));
/// Like [loopback], but supports HTTPS requests.
///
/// See [HttpServer.bindSecure].
static Future<HttpServer> loopbackSecure(int port, SecurityContext context,
- {int backlog = 0,
- bool v6Only = false,
- bool requestClientCertificate = false,
- bool shared = false}) {
- return _loopback(
- port,
- (address, port) => HttpServer.bindSecure(address, port, context,
- backlog: backlog,
- v6Only: v6Only,
- shared: shared,
- requestClientCertificate: requestClientCertificate));
- }
+ {int backlog = 0,
+ bool v6Only = false,
+ bool requestClientCertificate = false,
+ bool shared = false}) =>
+ _loopback(
+ port,
+ (address, port) => HttpServer.bindSecure(address, port, context,
+ backlog: backlog,
+ v6Only: v6Only,
+ shared: shared,
+ requestClientCertificate: requestClientCertificate));
/// Bind an [HttpServer] with handling for special addresses 'localhost' and
/// 'any'.
@@ -206,13 +204,13 @@
return await bind(InternetAddress.loopbackIPv6, port);
}
- var v4Server = await bind(InternetAddress.loopbackIPv4, port);
+ final v4Server = await bind(InternetAddress.loopbackIPv4, port);
if (!await supportsIPv6) return v4Server;
try {
// Reuse the IPv4 server's port so that if [port] is 0, both servers use
// the same ephemeral port.
- var v6Server = await bind(InternetAddress.loopbackIPv6, v4Server.port);
+ final v6Server = await bind(InternetAddress.loopbackIPv6, v4Server.port);
return HttpMultiServer([v4Server, v6Server]);
} on SocketException catch (error) {
// If there is already a server listening we'll lose the reference on a
@@ -238,13 +236,14 @@
/// current connections handled by all the servers.
@override
HttpConnectionsInfo connectionsInfo() {
- var info = HttpConnectionsInfo();
+ final info = HttpConnectionsInfo();
for (var server in _servers) {
- var subInfo = server.connectionsInfo();
- info.total += subInfo.total;
- info.active += subInfo.active;
- info.idle += subInfo.idle;
- info.closing += subInfo.closing;
+ final subInfo = server.connectionsInfo();
+ info
+ ..total += subInfo.total
+ ..active += subInfo.active
+ ..idle += subInfo.idle
+ ..closing += subInfo.closing;
}
return info;
}
diff --git a/pkgs/http_multi_server/lib/src/utils.dart b/pkgs/http_multi_server/lib/src/utils.dart
index e9fb3b4..87520fb 100644
--- a/pkgs/http_multi_server/lib/src/utils.dart
+++ b/pkgs/http_multi_server/lib/src/utils.dart
@@ -7,7 +7,7 @@
/// Returns whether this computer supports binding to IPv6 addresses.
final Future<bool> supportsIPv6 = () async {
try {
- var socket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
+ final socket = await ServerSocket.bind(InternetAddress.loopbackIPv6, 0);
await socket.close();
return true;
} on SocketException catch (_) {
@@ -18,7 +18,7 @@
/// Returns whether this computer supports binding to IPv4 addresses.
final Future<bool> supportsIPv4 = () async {
try {
- var socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
+ final socket = await ServerSocket.bind(InternetAddress.loopbackIPv4, 0);
await socket.close();
return true;
} on SocketException catch (_) {
diff --git a/pkgs/http_multi_server/pubspec.yaml b/pkgs/http_multi_server/pubspec.yaml
index 3d855c0..9220548 100644
--- a/pkgs/http_multi_server/pubspec.yaml
+++ b/pkgs/http_multi_server/pubspec.yaml
@@ -1,19 +1,17 @@
name: http_multi_server
-version: 3.2.1
+version: 3.2.2-dev
description: >-
A dart:io HttpServer wrapper that handles requests from multiple servers.
repository: https://github.com/dart-lang/http_multi_server
environment:
- sdk: '>=2.12.0 <3.0.0'
+ sdk: '>=2.19.0 <3.0.0'
dependencies:
async: ^2.5.0
dev_dependencies:
+ dart_flutter_team_lints: ^1.0.0
http: ^0.13.0
- lints: ^1.0.0
- test: ^1.16.0
-
-dependency_overrides:
+ shelf: ^1.4.0
test: ^1.16.0
diff --git a/pkgs/http_multi_server/test/http_multi_server_test.dart b/pkgs/http_multi_server/test/http_multi_server_test.dart
index 0591267..62f5b77 100644
--- a/pkgs/http_multi_server/test/http_multi_server_test.dart
+++ b/pkgs/http_multi_server/test/http_multi_server_test.dart
@@ -19,13 +19,11 @@
late HttpServer subServer2;
late HttpServer subServer3;
- setUp(() {
- return Future.wait([
- HttpServer.bind('localhost', 0).then((server) => subServer1 = server),
- HttpServer.bind('localhost', 0).then((server) => subServer2 = server),
- HttpServer.bind('localhost', 0).then((server) => subServer3 = server)
- ]).then((servers) => multiServer = HttpMultiServer(servers));
- });
+ setUp(() => Future.wait([
+ HttpServer.bind('localhost', 0).then((server) => subServer1 = server),
+ HttpServer.bind('localhost', 0).then((server) => subServer2 = server),
+ HttpServer.bind('localhost', 0).then((server) => subServer3 = server)
+ ]).then((servers) => multiServer = HttpMultiServer(servers)));
tearDown(() => multiServer.close());
@@ -41,12 +39,12 @@
});
test('serverHeader= sets the value for all servers', () {
- multiServer.serverHeader = 'http_multi_server test';
-
- multiServer.listen((request) {
- request.response.write('got request');
- request.response.close();
- });
+ multiServer
+ ..serverHeader = 'http_multi_server test'
+ ..listen((request) {
+ request.response.write('got request');
+ request.response.close();
+ });
expect(
_get(subServer1).then((response) {
@@ -71,12 +69,12 @@
});
test('autoCompress= sets the value for all servers', () {
- multiServer.autoCompress = true;
-
- multiServer.listen((request) {
- request.response.write('got request');
- request.response.close();
- });
+ multiServer
+ ..autoCompress = true
+ ..listen((request) {
+ request.response.write('got request');
+ request.response.close();
+ });
expect(
_get(subServer1).then((response) {
@@ -130,8 +128,8 @@
test('connectionsInfo sums the values for all servers', () {
var pendingRequests = 0;
- var awaitingResponseCompleter = Completer();
- var sendResponseCompleter = Completer();
+ final awaitingResponseCompleter = Completer();
+ final sendResponseCompleter = Completer();
multiServer.listen((request) {
sendResponseCompleter.future.then((_) {
request.response.write('got request');
@@ -148,7 +146,7 @@
expect(_get(subServer2), completes);
return awaitingResponseCompleter.future.then((_) {
- var info = multiServer.connectionsInfo();
+ final info = multiServer.connectionsInfo();
expect(info.total, equals(2));
expect(info.active, equals(2));
expect(info.idle, equals(0));
@@ -162,9 +160,7 @@
group('HttpMultiServer.loopback', () {
late HttpServer server;
- setUp(() {
- return HttpMultiServer.loopback(0).then((s) => server = s);
- });
+ setUp(() => HttpMultiServer.loopback(0).then((s) => server = s));
tearDown(() => server.close());
@@ -269,12 +265,12 @@
});
if (await supportsIPv4) {
- expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+ expect(client.read(Uri.https('127.0.0.1:${server.port}')),
completion(equals('got request')));
}
if (await supportsIPv6) {
- expect(client.read(Uri.https('[::1]:${server.port}', '')),
+ expect(client.read(Uri.https('[::1]:${server.port}')),
completion(equals('got request')));
}
});
@@ -287,12 +283,12 @@
});
if (await supportsIPv4) {
- expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+ expect(client.read(Uri.https('127.0.0.1:${server.port}')),
completion(equals('got request')));
}
if (await supportsIPv6) {
- expect(client.read(Uri.https('[::1]:${server.port}', '')),
+ expect(client.read(Uri.https('[::1]:${server.port}')),
completion(equals('got request')));
}
});
@@ -306,11 +302,11 @@
request.response.close();
});
- expect(client.read(Uri.https('127.0.0.1:${server.port}', '')),
+ expect(client.read(Uri.https('127.0.0.1:${server.port}')),
completion(equals('got request')));
if (await supportsIPv6) {
- expect(client.read(Uri.https('[::1]:${server.port}', '')),
+ expect(client.read(Uri.https('[::1]:${server.port}')),
throwsA(isA<SocketException>()));
}
});