41 lines
1.2 KiB
Markdown
41 lines
1.2 KiB
Markdown
![]() |
# Belatuk Range Header
|
||
|
|
||
|

|
||
|
[](https://dart.dev/null-safety)
|
||
|
[](https://github.com/dart-backend/belatuk-common-utilities/blob/main/packages/range_header/LICENSE)
|
||
|
|
||
|
**Replacement of `package:range_header` with breaking changes to support NNBD.**
|
||
|
|
||
|
Range header parser for belatuk. Can be used by any dart backend.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
In your `pubspec.yaml`:
|
||
|
|
||
|
```yaml
|
||
|
dependencies:
|
||
|
platform_range_header: ^6.2.0
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```dart
|
||
|
handleRequest(HttpRequest request) async {
|
||
|
// Parse the header
|
||
|
var header = RangeHeader.parse(request.headers.value(HttpHeaders.rangeHeader));
|
||
|
|
||
|
// Optimize/canonicalize it
|
||
|
var items = RangeHeader.foldItems(header.items);
|
||
|
header = RangeHeader(items);
|
||
|
|
||
|
// Get info
|
||
|
header.items;
|
||
|
header.rangeUnit;
|
||
|
print(header.items[0].toContentRange(fileSize));
|
||
|
|
||
|
// Serve the file
|
||
|
var transformer = RangeHeaderTransformer(header);
|
||
|
await file.openRead().transform(transformer).pipe(request.response);
|
||
|
}
|
||
|
```
|