Migrated to Dart 3

This commit is contained in:
thomashii@dukefirehawk.com 2023-03-26 09:47:42 +08:00
parent 5ad3ab195d
commit 1dce9a75c3
20 changed files with 63 additions and 36 deletions

View file

@ -1,5 +1,9 @@
# Change Log
## 5.0.0-beta.1
* Require Dart >= 3.0
## 4.0.0
* Require Dart >= 2.17

View file

@ -1,9 +1,9 @@
name: belatuk_merge_map
version: 4.0.0
version: 5.0.0-beta.1
description: Combine multiple Maps into one. Equivalent to Object.assign in JS.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/merge_map
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dev_dependencies:
test: ^1.17.4
lints: ^2.0.0

View file

@ -1,5 +1,9 @@
# Change Log
## 6.0.0-beta.1
* Require Dart >= 3.0
## 5.0.0
* Require Dart >= 2.17

View file

@ -15,7 +15,7 @@ In your `pubspec.yaml`:
```yaml
dependencies:
belatuk_pretty_logging: ^5.0.0
belatuk_pretty_logging: ^6.0.0
```
## Usage

View file

@ -1,9 +1,9 @@
name: belatuk_pretty_logging
version: 5.0.0
version: 6.0.0-beta.1
description: Standalone helper for colorful logging output, using pkg:io AnsiCode.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/pretty_logging
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dependencies:
io: ^1.0.0
logging: ^1.0.1

View file

@ -1,5 +1,9 @@
# Change Log
## 6.0.0-beta.1
* Require Dart >= 3.0
## 5.0.0
* Require Dart >= 2.17

View file

@ -14,7 +14,7 @@ Add `belatuk_pub_sub` as a dependency in your `pubspec.yaml` file:
```yaml
dependencies:
belatuk_pub_sub: ^5.0.0
belatuk_pub_sub: ^6.0.0
```
Then, be sure to run `pub get` in your terminal.

View file

@ -1,9 +1,9 @@
name: belatuk_pub_sub
version: 5.0.0
version: 6.0.0-beta.1
description: Keep application instances in sync with a simple pub/sub API.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/pub_sub
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dependencies:
json_rpc_2: ^3.0.0
stream_channel: ^2.1.0

View file

@ -1,5 +1,9 @@
# Change Log
## 6.0.0-beta.1
* Require Dart >= 3.0
## 5.0.0
* Require Dart >= 2.17

View file

@ -14,7 +14,7 @@ In your `pubspec.yaml`:
```yaml
dependencies:
belatuk_range_header: ^5.0.0
belatuk_range_header: ^6.0.0
```
## Usage

View file

@ -15,7 +15,9 @@ void handleRequest(HttpRequest request) async {
// Get info
header.items;
header.rangeUnit;
header.items.forEach((item) => item.toContentRange(400));
for (var item in header.items) {
item.toContentRange(400);
}
// Serve the file
var transformer =

View file

@ -1,7 +1,9 @@
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
import 'dart:io' show BytesBuilder;
//import 'dart:io' hide BytesBuilder;
import 'dart:typed_data';
import 'dart:math';
import 'package:async/async.dart';
import 'package:charcode/ascii.dart';

View file

@ -1,8 +1,8 @@
class RangeHeaderParseException extends FormatException {
@override
final String message;
//@override
//final String message;
RangeHeaderParseException(this.message);
RangeHeaderParseException(super.message);
@override
String toString() => 'Range header parse exception: $message';

View file

@ -9,7 +9,7 @@ import 'range_header_item.dart';
final RegExp _rgxInt = RegExp(r'[0-9]+');
final RegExp _rgxWs = RegExp(r'[ \n\r\t]');
enum TokenType { RANGE_UNIT, COMMA, INT, DASH, EQUALS }
enum TokenType { rangeUnit, comma, int, dash, equals }
class Token {
final TokenType type;
@ -27,19 +27,19 @@ List<Token> scan(String text, List<String> allowedRangeUnits) {
scanner.scan(_rgxWs);
if (scanner.scanChar($comma)) {
tokens.add(Token(TokenType.COMMA, scanner.lastSpan));
tokens.add(Token(TokenType.comma, scanner.lastSpan));
} else if (scanner.scanChar($dash)) {
tokens.add(Token(TokenType.DASH, scanner.lastSpan));
tokens.add(Token(TokenType.dash, scanner.lastSpan));
} else if (scanner.scan(_rgxInt)) {
tokens.add(Token(TokenType.INT, scanner.lastSpan));
tokens.add(Token(TokenType.int, scanner.lastSpan));
} else if (scanner.scanChar($equal)) {
tokens.add(Token(TokenType.EQUALS, scanner.lastSpan));
tokens.add(Token(TokenType.equals, scanner.lastSpan));
} else {
var matched = false;
for (var unit in allowedRangeUnits) {
if (scanner.scan(unit)) {
tokens.add(Token(TokenType.RANGE_UNIT, scanner.lastSpan));
tokens.add(Token(TokenType.rangeUnit, scanner.lastSpan));
matched = true;
break;
}
@ -98,9 +98,9 @@ class Parser {
}
RangeHeader? parseRangeHeader() {
if (next(TokenType.RANGE_UNIT)) {
if (next(TokenType.rangeUnit)) {
var unit = current!.span!.text;
next(TokenType.EQUALS); // Consume =, if any.
next(TokenType.equals); // Consume =, if any.
var items = <RangeHeaderItem>[];
var item = parseHeaderItem();
@ -108,7 +108,7 @@ class Parser {
while (item != null) {
items.add(item);
// Parse comma
if (next(TokenType.COMMA)) {
if (next(TokenType.comma)) {
item = parseHeaderItem();
} else {
item = null;
@ -126,11 +126,11 @@ class Parser {
}
RangeHeaderItem? parseHeaderItem() {
if (next(TokenType.INT)) {
if (next(TokenType.int)) {
// i.e 500-544, or 600-
var start = int.parse(current!.span!.text);
if (next(TokenType.DASH)) {
if (next(TokenType.INT)) {
if (next(TokenType.dash)) {
if (next(TokenType.int)) {
return RangeHeaderItem(start, int.parse(current!.span!.text));
} else {
return RangeHeaderItem(start);
@ -138,9 +138,9 @@ class Parser {
} else {
throw _expected('"-"');
}
} else if (next(TokenType.DASH)) {
} else if (next(TokenType.dash)) {
// i.e. -599
if (next(TokenType.INT)) {
if (next(TokenType.int)) {
return RangeHeaderItem(-1, int.parse(current!.span!.text));
} else {
throw _expected('integer');

View file

@ -1,9 +1,9 @@
name: belatuk_range_header
version: 5.0.0
version: 6.0.0-beta.1
description: Range header parser for Dart. Beyond parsing, a stream transformer is included.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/range_header
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dependencies:
async: ^2.6.0
charcode: ^1.2.0

View file

@ -1,5 +1,9 @@
# Change Log
## 5.0.0-beta.1
* Require Dart >= 3.0
## 4.0.0
* Require Dart >= 2.17

View file

@ -12,8 +12,7 @@ and utilize basic memoization to speed up repeated lookups.
## Variables
To represent a symbol, use `Variable`. I opted for the name
`Variable` to avoid conflict with the Dart primitive `Symbol`.
To represent a symbol, use `Variable`. I opted for the name `Variable` to avoid conflict with the Dart primitive `Symbol`.
```dart
var foo = Variable<String>('foo');

View file

@ -1,9 +1,9 @@
name: belatuk_symbol_table
version: 4.0.0
version: 5.0.0-beta.1
description: A generic symbol table implementation in Dart, with support for scopes and constants.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/symbol_table
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dependencies:
collection: ^1.15.0
dev_dependencies:

View file

@ -1,5 +1,9 @@
# Change Log
## 5.0.0-beta.1
* Require Dart >= 3.0
## 4.0.0
* Require Dart >= 2.17

View file

@ -1,9 +1,9 @@
name: user_agent_analyzer
version: 4.0.0
version: 5.0.0-beta.1
description: A library to identify the type of devices and web browsers based on User-Agent string.
homepage: https://github.com/dart-backend/belatuk-common-utilities/tree/main/packages/user_agent
environment:
sdk: '>=2.17.0 <3.0.0'
sdk: '>=3.0.0-290.3.beta <4.0.0'
dev_dependencies:
test: ^1.17.8
lints: ^2.0.0