migrate to null safety (dart-lang/http_multi_server#32)
diff --git a/pkgs/http_multi_server/.github/workflows/test-package.yml b/pkgs/http_multi_server/.github/workflows/test-package.yml index 62d0d01..21a3c50 100644 --- a/pkgs/http_multi_server/.github/workflows/test-package.yml +++ b/pkgs/http_multi_server/.github/workflows/test-package.yml
@@ -59,27 +59,3 @@ - name: Run VM tests run: dart test --platform vm if: always() && steps.install.outcome == 'success' - - # Run tests on a matrix consisting of two dimensions: - # 1. OS: ubuntu-latest, (macos-latest, windows-latest) - # 2. release: 2.1.1 - test-legacy-sdk: - needs: analyze - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - # Add macos-latest and/or windows-latest if relevant for this package. - os: [ubuntu-latest] - sdk: [2.1.1] - steps: - - uses: actions/checkout@v2 - - uses: dart-lang/setup-dart@v0.3 - with: - sdk: ${{ matrix.sdk }} - - id: install - name: Install dependencies - run: pub get - - name: Run VM tests - run: pub run test --platform vm - if: always() && steps.install.outcome == 'success'
diff --git a/pkgs/http_multi_server/CHANGELOG.md b/pkgs/http_multi_server/CHANGELOG.md index 49d648b..5d90eaf 100644 --- a/pkgs/http_multi_server/CHANGELOG.md +++ b/pkgs/http_multi_server/CHANGELOG.md
@@ -1,8 +1,10 @@ -## 2.2.1-dev +## 3.0.0-dev + +* Migrate to null safety. ## 2.2.0 -- Preparation for [HttpHeaders change]. Update signature of `MultiHeaders.add()` +* Preparation for [HttpHeaders change]. Update signature of `MultiHeaders.add()` and `MultiHeaders.set()` to match new signature of `HttpHeaders`. The parameter is not yet forwarded and will not behave as expected. @@ -10,11 +12,10 @@ ## 2.1.0 -- Add `HttpMultiServer.bind` static which centralizes logic around common local +* Add `HttpMultiServer.bind` static which centralizes logic around common local serving scenarios - handling a more flexible 'localhost' and listening on 'any' hostname. -- Update SDK constraints to `>=2.1.0 <3.0.0`. - +* Update SDK constraints to `>=2.1.0 <3.0.0`. ## 2.0.6
diff --git a/pkgs/http_multi_server/lib/http_multi_server.dart b/pkgs/http_multi_server/lib/http_multi_server.dart index 1ba0a2b..bd8a6a7 100644 --- a/pkgs/http_multi_server/lib/http_multi_server.dart +++ b/pkgs/http_multi_server/lib/http_multi_server.dart
@@ -36,9 +36,10 @@ /// If the wrapped servers have different default values, it's not defined /// which value is returned. @override - String get serverHeader => _servers.first.serverHeader; + String? get serverHeader => _servers.first.serverHeader; + @override - set serverHeader(String value) { + set serverHeader(String? value) { for (var server in _servers) { server.serverHeader = value; } @@ -52,9 +53,9 @@ final HttpHeaders defaultResponseHeaders; @override - Duration get idleTimeout => _servers.first.idleTimeout; + Duration? get idleTimeout => _servers.first.idleTimeout; @override - set idleTimeout(Duration value) { + set idleTimeout(Duration? value) { for (var server in _servers) { server.idleTimeout = value; } @@ -105,9 +106,7 @@ /// /// See [HttpServer.bind]. static Future<HttpServer> loopback(int port, - {int backlog, bool v6Only = false, bool shared = false}) { - backlog ??= 0; - + {int backlog = 0, bool v6Only = false, bool shared = false}) { return _loopback( port, (address, port) => HttpServer.bind(address, port, @@ -118,12 +117,10 @@ /// /// See [HttpServer.bindSecure]. static Future<HttpServer> loopbackSecure(int port, SecurityContext context, - {int backlog, + {int backlog = 0, bool v6Only = false, bool requestClientCertificate = false, bool shared = false}) { - backlog ??= 0; - return _loopback( port, (address, port) => HttpServer.bindSecure(address, port, context, @@ -162,9 +159,7 @@ /// [HttpServer.bindSecure]. static Future<HttpServer> _loopback( int port, Future<HttpServer> Function(InternetAddress, int port) bind, - [int remainingRetries]) async { - remainingRetries ??= 5; - + [int remainingRetries = 5]) async { if (!await supportsIPv4) { return await bind(InternetAddress.loopbackIPv6, port); } @@ -182,7 +177,7 @@ // rethrow. await v4Server.close(); - if (error.osError.errorCode != _addressInUseErrno) rethrow; + if (error.osError?.errorCode != _addressInUseErrno) rethrow; if (port != 0) rethrow; if (remainingRetries == 0) rethrow;
diff --git a/pkgs/http_multi_server/lib/src/multi_headers.dart b/pkgs/http_multi_server/lib/src/multi_headers.dart index 25807b0..92bfd64 100644 --- a/pkgs/http_multi_server/lib/src/multi_headers.dart +++ b/pkgs/http_multi_server/lib/src/multi_headers.dart
@@ -29,45 +29,45 @@ } @override - ContentType get contentType => _headers.first.contentType; + ContentType? get contentType => _headers.first.contentType; @override - set contentType(ContentType value) { + set contentType(ContentType? value) { for (var headers in _headers) { headers.contentType = value; } } @override - DateTime get date => _headers.first.date; + DateTime? get date => _headers.first.date; @override - set date(DateTime value) { + set date(DateTime? value) { for (var headers in _headers) { headers.date = value; } } @override - DateTime get expires => _headers.first.expires; + DateTime? get expires => _headers.first.expires; @override - set expires(DateTime value) { + set expires(DateTime? value) { for (var headers in _headers) { headers.expires = value; } } @override - String get host => _headers.first.host; + String? get host => _headers.first.host; @override - set host(String value) { + set host(String? value) { for (var headers in _headers) { headers.host = value; } } @override - DateTime get ifModifiedSince => _headers.first.ifModifiedSince; + DateTime? get ifModifiedSince => _headers.first.ifModifiedSince; @override - set ifModifiedSince(DateTime value) { + set ifModifiedSince(DateTime? value) { for (var headers in _headers) { headers.ifModifiedSince = value; } @@ -83,9 +83,9 @@ } @override - int get port => _headers.first.port; + int? get port => _headers.first.port; @override - set port(int value) { + set port(int? value) { for (var headers in _headers) { headers.port = value; } @@ -133,10 +133,10 @@ } @override - String value(String name) => _headers.first.value(name); + String? value(String name) => _headers.first.value(name); @override - List<String> operator [](String name) => _headers.first[name]; + List<String>? operator [](String name) => _headers.first[name]; @override void clear() {
diff --git a/pkgs/http_multi_server/pubspec.yaml b/pkgs/http_multi_server/pubspec.yaml index e93015c..3593fc1 100644 --- a/pkgs/http_multi_server/pubspec.yaml +++ b/pkgs/http_multi_server/pubspec.yaml
@@ -1,17 +1,20 @@ name: http_multi_server -version: 2.2.1-dev +version: 3.0.0-dev description: >- A dart:io HttpServer wrapper that handles requests from multiple servers. homepage: https://github.com/dart-lang/http_multi_server environment: - sdk: '>=2.1.1 <3.0.0' + sdk: '>=2.12.0-0 <3.0.0' dependencies: - async: '>=1.2.0 <3.0.0' + async: ^2.5.0 dev_dependencies: - http: ^0.12.0 - pedantic: ^1.8.0 - test: ^1.5.2 + http: ^0.13.0 + pedantic: ^1.10.0 + test: ^1.16.0 + +dependency_overrides: + 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 2cbb984..749980e 100644 --- a/pkgs/http_multi_server/test/http_multi_server_test.dart +++ b/pkgs/http_multi_server/test/http_multi_server_test.dart
@@ -13,9 +13,9 @@ void main() { group('with multiple HttpServers', () { var multiServer; - HttpServer subServer1; - HttpServer subServer2; - HttpServer subServer3; + late HttpServer subServer1; + late HttpServer subServer2; + late HttpServer subServer3; setUp(() { return Future.wait([ HttpServer.bind('localhost', 0).then((server) => subServer1 = server),