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

valkyrjaio / sindri-ts / 30727313050
100%

Build:
DEFAULT BRANCH: 26.x
Ran 02 Aug 2026 01:35AM UTC
Jobs 1
Files 52
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 Aug 2026 01:35AM UTC coverage: 100.0%. Remained the same
30727313050

push

github

web-flow
[Ast] feat: Scan routing decorators into the generated route data (#65)

# Description

Teaches Sindri to scan the framework's routing **decorators** and
generate the
route data cache from them — the build-time counterpart to the
framework's new
`@Route`/`@DynamicRoute`/CLI decorators (valkyrjaio/valkyrja-ts#85).
Decorator
routes and imperative `getRoutes()` routes now **merge** into one
generated data
file, matching PHP.

The decorators ship as single **options-object** attributes (e.g.
`@Route({ path, name, requestMethods, parameters })`), so the AST
readers — which
previously parsed **positional** arguments — are rewritten to read
object-literal
properties via ts-morph (build-time only; decorators are never
executed).

**What changed and why**
- **Object-literal parsing.** New `AstReader` helpers
(`getDecoratorObjectArg`,
`getObjectProp`, and prop-based string/bool/array/handler extractors)
replace
positional access. HTTP + CLI route/middleware/parameter readers read
the
options object; the removed `@Parameter` decorator handling is deleted
and
  `parameters` is read as folded object literals.
- **Auto-promotion (PHP parity).** An `@Route` whose path contains a
`{parameter}` placeholder is treated as dynamic, and a plain `@Route`
may carry
a `parameters` option — matching the framework, which auto-promotes the
same
  way. `@DynamicRoute` remains an explicit alias.
- **Two constructor-order bugs fixed.** (a) `buildRouteExpr` now emits
`new DynamicRoute(path, name, regex, parameters, handler,
requestMethods, …5
middleware, requestStruct, responseStruct)` with the computed regex in
slot 2
and `parameters` always present; (b) the compensating "append regex
last" hack
in `AstHttpDataFileGenerator.getRoutesAsContent()` is removed. Two
additional
CLI emit-order fixes: the empty `options`/`arguments` slots are now
emitted so
  `mode`/`valueMode` land correctly.
- **Merge.** `GenerateDataFromAst` previously dropped all attribute
routes when a
provider had a... (continued)

990 of 990 branches covered (100.0%)

Branch coverage included in aggregate %.

190 of 190 new or added lines in 12 files covered. (100.0%)

1601 of 1601 relevant lines covered (100.0%)

24.09 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30727313050.1 02 Aug 2026 01:35AM UTC 52
100.0
GitHub Action Run
Source Files on build 30727313050
  • Tree
  • List 52
  • Changed 12
  • Source Changed 12
  • Coverage Changed 12
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30727313050
  • 2a2154ae on github
  • Prev Build on 26.x (#30726900851)
  • Next Build on 26.x (#30727404675)
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