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

supabase / supabase-swift / 37920151054
93%

Build:
DEFAULT BRANCH: main
Ran 09 Oct 2026 10:55AM UTC
Jobs 1
Files 159
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

09 Oct 2026 10:51AM UTC coverage: 91.277% (-0.002%) from 91.279%
37920151054

push

github

web-flow
feat(postgrest): generate @Table structs with a Swift typegen (#1488)

* feat(typegen): add the supabase-typegen executable and its GeneratorMetadata input

Decodes postgrest-typegen's GeneratorMetadata (version 1) from standard
input, indexes it into a deterministic model, and parses --schema,
--output and --access-control. Exit codes follow sysexits: 64 for usage,
65 for data errors. Output is a placeholder until the emitter lands.

Fixtures come from postgrest-typegen's introspect against the integration
schema and against postgrest-typegen's own fixture SQL, refreshed with
scripts/refresh-typegen-fixtures.sh.

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(typegen): emit @Table structs from the GeneratorMetadata model

The generator now writes one struct per relation, with properties typed
from the Postgres column types, and a PostgrestSchema enum for every
selected schema other than public. Declarations are built with
SwiftSyntaxBuilder and printed with swift-format under a built-in
configuration, so the output is the same on every machine.

Names that @Table cannot take are renamed and reported on standard error:
members the expansion adds, keywords (escaped), and Postgres names that
convert to the same Swift name. A type name that clashes across schemas
is a data error. Enums and unmapped types decode as JSONValue for now.

Golden files under Tests/SupabaseTypegenTests/__Goldens__ pin the output;
SUPABASE_TYPEGEN_RECORD=1 rewrites them.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(postgrest): escape quotes and backslashes in names the macros splice

@Table, @Column and @SelectionOf read their string arguments with
representedLiteralValue, which undoes the author's escapes, then spliced
the value between quotes in the expansion. A relation or column name
holding " or \ produced an expansion that did not parse. The name is now
escaped again before it lands in a generated literal.

Co-Authored-By: Claude <noreply@anthropic.com>

... (continued)

10 of 11 new or added lines in 1 file covered. (90.91%)

12358 of 13539 relevant lines covered (91.28%)

140.98 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
95.38
-1.04% Sources/Helpers/DateFormatter.swift
Jobs
ID Job ID Ran Files Coverage
1 37920151054.1 09 Oct 2026 10:55AM UTC 159
91.28
GitHub Action Run
Source Files on build 37920151054
  • Tree
  • List 159
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37920151054
  • 5ff732be on github
  • Prev Build on main (#37917177432)
  • Next Build on main (#37932297927)
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