• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 36977860469
92%

Build:
DEFAULT BRANCH: main
Ran 02 Oct 2026 07:20AM UTC
Jobs 11
Files 173
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Oct 2026 07:18AM UTC coverage: 91.293% (-0.1%) from 91.392%
36977860469

push

github

web-flow
feat(postgrest): add retry, requestTimeout, abortSignal and setHeader to the typed builders (#1907)

## Summary

The untyped builders let a caller control each request, but the typed
builders returned by `client.table(...)` could not do any of it. A typed
caller had no way to cancel a request, override the timeout or retry
policy, or set a header. That includes the `Authorization` header, which
is how a single request overrides the token. The `Future.timeout()` the
typed builder inherits only stops waiting for the result, while the HTTP
request keeps running.

This adds `retry({bool enabled, int? count})`,
`requestTimeout(Duration)`, `abortSignal(Future<void>)` and
`setHeader(String, String)` to `PostgrestTypedQueryBuilder`,
`PostgrestTypedFilterBuilder`, `PostgrestTypedTransformBuilder` and
`PostgrestTypedBuilder`. Each one returns its own builder type, so the
chain continues. Unlike the untyped API, `abortSignal` is available at
every phase, so `.where()` still works after it.

```dart
final books = await client
    .table(Books.table)
    .select()
    .abortSignal(abort.future)
    .setHeader('Authorization', 'Bearer $token')
    .where(Books.id.eq(1))
    .requestTimeout(const Duration(seconds: 5));
```

## How it works

The typed builders collect an immutable `PostgrestTableRequest` and a
`PostgrestTableExecutor` runs it. They do not wrap untyped builders, so
these settings cannot just be forwarded. Instead:

- The new `PostgrestRequestOptions` class holds the headers, the retry
override, the timeout and the abort signal. It is stored as
`PostgrestTableRequest.options`, separate from the query fields, because
it controls how the request is sent rather than what it asks for. Its
dartdoc says an executor that does not use HTTP, such as a cache or a
local store, may ignore it, and that a cache keying on the request
should leave the abort signal out of the key.
- `PostgrestHttpTableExecutor` applies the options to the final untyped
builder, for both... (continued)

76 of 93 new or added lines in 6 files covered. (81.72%)

9080 of 9946 relevant lines covered (91.29%)

4.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
83.72
-9.61% packages/postgrest/lib/src/postgrest_typed_builder.dart
4
88.61
-4.35% packages/postgrest/lib/src/postgrest_typed_transform_builder.dart
2
97.26
-2.74% packages/postgrest/lib/src/postgrest_typed_query_builder.dart
1
92.52
0.05% packages/postgrest/lib/src/postgrest_table_executor.dart
Jobs
ID Job ID Ran Files Coverage
3 postgrest - 36977860469.3 02 Oct 2026 07:23AM UTC 29
93.43
GitHub Action Run
4 supabase - 36977860469.4 02 Oct 2026 07:24AM UTC 18
94.26
GitHub Action Run
5 supabase_typegen - 36977860469.5 02 Oct 2026 07:22AM UTC 24
95.81
GitHub Action Run
6 supabase_storage - 36977860469.6 02 Oct 2026 07:23AM UTC 9
97.83
GitHub Action Run
7 iceberg - 36977860469.7 02 Oct 2026 07:20AM UTC 6
68.52
GitHub Action Run
8 supabase_functions - 36977860469.8 02 Oct 2026 07:20AM UTC 4
96.0
GitHub Action Run
9 supabase_auth - 36977860469.9 02 Oct 2026 07:24AM UTC 32
92.07
GitHub Action Run
10 supabase_realtime - 36977860469.10 02 Oct 2026 07:23AM UTC 13
90.66
GitHub Action Run
11 supabase_flutter - 36977860469.11 02 Oct 2026 07:21AM UTC 15
81.0
GitHub Action Run
1 supabase_common - 36864123641.1 01 Oct 2026 12:48PM UTC 22
87.5
GitHub Action Run
6 yet_another_json_isolate - 36864123641.6 01 Oct 2026 12:48PM UTC 1
98.44
GitHub Action Run
Source Files on build 36977860469
  • Tree
  • List 173
  • Changed 6
  • Source Changed 6
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #36977860469
  • e7ab358f on github
  • Prev Build on main (#36864123641)
  • Next Build on main (#36978546799)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc