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

supabase / supabase-swift / 32359048881
87%

Build:
DEFAULT BRANCH: main
Ran 20 Aug 2026 10:31AM UTC
Jobs 1
Files 104
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

20 Aug 2026 10:27AM UTC coverage: 87.102% (-0.07%) from 87.173%
32359048881

push

github

web-flow
refactor(postgrest)!: make client and builders stateless value types (#1240)

* refactor(postgrest)!: make PostgrestClient and builders stateless value types

Replace the PostgrestBuilder/PostgrestQueryBuilder/PostgrestFilterBuilder/
PostgrestTransformBuilder class hierarchy with a single generic
PostgrestRequestBuilder<Phase> struct, using phantom-typed phases
(PostgrestQueryPhase/PostgrestFilterPhase/PostgrestTransformPhase) and
protocol-refinement-based conditional conformance
(PostgrestExecutablePhase/PostgrestTransformablePhase/PostgrestFilterablePhase)
to encode the builder phase graph at compile time. PostgrestClient becomes a
struct too, with setAuth(_:) replaced by a constructor-injected accessToken
closure resolved fresh per request, mirroring FunctionsClient/RealtimeClientV2.

* fix(postgrest): extract Operator to a top-level type shared across phases

A struct nested inside any extension of a generic type -- constrained or
not -- is a distinct type per generic specialization, so the previous
`extension PostgrestRequestBuilder { struct Operator { ... } }` produced
three unrelated Operator types (one per phase typealias) instead of one
shared type, and forced all 25 operator constants into computed
`static var`s. Extract Operator to a top-level PostgrestOperator type and
alias it back onto PostgrestRequestBuilder as `Operator`, restoring the
constants to real `static let`s.

* test(postgrest): cover accessToken resolution and phase-preservation

Adds coverage for the accessToken closure added in the PostgrestClient
statelessness refactor (resolution timing, explicit-header precedence,
error propagation) and a regression test locking in that maybeSingle()'s
isMaybeSingle flag survives a later transform call like order(...).

* fix(examples): remove unsafe PostgrestFilterBuilder downcast in FilteringView

query.order(...) as! PostgrestFilterBuilder relied on PostgrestFilterBuilder
and PostgrestTransformBuilder sharing a class instance under th... (continued)

511 of 529 new or added lines in 6 files covered. (96.6%)

3 existing lines in 1 file now uncovered.

9056 of 10397 relevant lines covered (87.1%)

165.63 hits per line

Uncovered Changes

Lines Coverage ∆ File
14
84.15
-1.85% Sources/PostgREST/PostgrestFilterBuilder.swift
4
97.6
Sources/PostgREST/PostgrestRequestBuilder.swift

Coverage Regressions

Lines Coverage ∆ File
3
97.35
-2.65% Sources/Helpers/JSONValue/JSONValue.swift
Jobs
ID Job ID Ran Files Coverage
1 32359048881.1 20 Aug 2026 10:31AM UTC 104
87.1
GitHub Action Run
Source Files on build 32359048881
  • Tree
  • List 104
  • Changed 7
  • Source Changed 6
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32359048881
  • b52d385c on github
  • Prev Build on main (#32311867998)
  • Next Build on main (#32382559617)
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