Conversation
|
/canary |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #4 +/- ##
==========================================
+ Coverage 61.88% 65.47% +3.59%
==========================================
Files 22 28 +6
Lines 4106 4571 +465
Branches 706 733 +27
==========================================
+ Hits 2541 2993 +452
- Misses 1558 1562 +4
- Partials 7 16 +9 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| @Serializable | ||
| @SerialName("null") | ||
| data class NullType( | ||
| @Transient override val type: String = "null", |
There was a problem hiding this comment.
are these @Transient properties not conflicting with the @SerialName, are both needed
There was a problem hiding this comment.
My understand is that @SerialName sets the polymorphic discriminator value ("type": "string" in JSON) and @Transient prevents type from being serialized as a regular field, avoiding a clash with the discriminator. The type property itself exists purely as a Kotlin convenience so you can do node.type without pattern matching. If you removed @Transient, serialization would fail. If you removed the type property entirely, you'd lose programmatic access to the type string (though you could use when(node) instead).
Summary
types/kotlin/XlrDeserializer) usingkotlinx.serializationto parse XLR JSON documents into strongly-typed Kotlin data classesXlrGuards) for common checks like primitive types, asset/binding/expression refs, and asset type extractionXlrUtility) for capabilities, manifests, and transform functionsrules_kotlin,kotlinx-serializationcompiler plugin, andktlintfor lintingBuild changes:
MODULE.bazelto addrules_kotlinandkotlinx-serializationdependenciesBUILD.bazelkotlin compiler options.circleci/config.yml📦 Published PR as canary version:
0.2.0--canary.4.100Try this version out locally by upgrading relevant packages to 0.2.0--canary.4.100