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

supabase / supabase-flutter / 37461520337
92%

Build:
DEFAULT BRANCH: main
Ran 06 Oct 2026 12:15PM 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

06 Oct 2026 12:11PM UTC coverage: 91.453% (+0.001%) from 91.452%
37461520337

push

github

web-flow
fix(typegen): generate a decoder for an enum named without ASCII letters (#1919)

## Summary

The generator throws instead of writing a file when a column uses an
enum whose name has no ASCII letter or digit, for example one named in
Cyrillic or in kanji.

```sql
create type "статус" as enum ('новый', 'готов');
create table orders (status "статус" not null);
```

```
RangeError (index): Invalid value: Valid value range is empty: 0
#0      _StringBase.[]
#1      _decoderName (package:supabase_typegen/src/dart_generator.dart:972:18)
#2      _DecoderRegistry.claim.<anonymous closure>
```

Such a name has no word `pascalCase` can use, so the enum is generated
as `$`, and that part works. `_decoderName` then builds the name of the
column's decoder from the Dart type and removes every `\W` character on
the way. `$` is not a word character, so nothing is left of the type
name and `base[0]` reads past the end of an empty string.

The fix names the decoder `_fromJson` when the type leaves no characters
to name it after. `_claimName` keeps a second enum of this kind apart,
as it does for every other decoder.

Only a schema that threw before is affected. For every schema that
generated before, the output is unchanged: the only edits to the hostile
golden are the lines for the new enum and table.

One related case stays open and is not touched here: when the columns of
a table are named in such a script too, a column getter named `$`
shadows the enum type `$` inside the row type, and the generated file
does not analyze. I can send that separately.

## Test

- `hostile_fixture.dart` gains the enum `статус` and an `orders` table
with a column of that type, and the checked-in golden gains their
output, so the package's own `dart analyze` run covers the generated
code.
- `dart_generator_test.dart`: `an enum named without ASCII letters gets
a decoder`.
- Without the one-line fix, every test that generates the hostile schema
fails with the `RangeError` above (20 tests)... (continued)

1 of 1 new or added line in 1 file covered. (100.0%)

9277 of 10144 relevant lines covered (91.45%)

5.13 hits per line

Jobs
ID Job ID Ran Files Coverage
11 supabase_typegen - 37461520337.11 06 Oct 2026 12:15PM UTC 24
96.22
GitHub Action Run
5 supabase - 37325589602.5 05 Oct 2026 02:37PM UTC 18
94.26
GitHub Action Run
3 supabase_functions - 37446858483.3 06 Oct 2026 10:02AM UTC 4
96.04
GitHub Action Run
11 iceberg - 37446858483.11 06 Oct 2026 10:02AM UTC 6
68.57
GitHub Action Run
4 supabase_storage - 37446858483.4 06 Oct 2026 10:04AM UTC 9
98.1
GitHub Action Run
6 yet_another_json_isolate - 36864123641.6 01 Oct 2026 12:48PM UTC 1
98.44
GitHub Action Run
6 supabase_common - 37446858483.6 06 Oct 2026 10:02AM UTC 22
87.55
GitHub Action Run
10 supabase_realtime - 37446858483.10 06 Oct 2026 10:04AM UTC 13
90.67
GitHub Action Run
8 postgrest - 37446858483.8 06 Oct 2026 10:05AM UTC 29
93.41
GitHub Action Run
7 supabase_auth - 37446858483.7 06 Oct 2026 10:06AM UTC 32
92.07
GitHub Action Run
5 supabase_flutter - 37446858483.5 06 Oct 2026 10:02AM UTC 15
81.0
GitHub Action Run
Source Files on build 37461520337
  • Tree
  • List 173
  • Changed 19
  • Source Changed 19
  • Coverage Changed 10
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37461520337
  • cf0256d9 on github
  • Prev Build on main (#37446858483)
  • Next Build on main (#37462558256)
  • 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