@@ -21,23 +21,30 @@ interface PlayerDetails {
2121}
2222```
2323
24- The aim is to create TypeScript interfaces that can accurately produce JSON that Kotlinx
25- Serialization can parse.
24+ The aim is to create TypeScript interfaces that can accurately produce Kotlinx Serialization
25+ compatible JSON.
26+
27+ The Kotlinx Serialization API should be used to generate TypeScript. The
28+ [ ` SerialDescriptor ` s] ( https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-core/kotlinx.serialization.descriptors/-serial-descriptor/index.html )
29+ are flexible and comprehensive enough to allow for accurate TypeScript code, without any deviation.
2630
2731See [ the docs] ( ./docs ) for working examples.
2832
2933## Status
3034
3135This is a proof-of-concept.
3236
33- | | Status | Notes |
34- | ---------------------------------------| ----------------------------------------------------------| :--------------------------------------------------------------------------------------------------|
35- | Basic classes | ✅ [ example] ( ./docs/basic-classes.md ) | |
36- | Nullable and default-value properties | ✅ [ example] ( ./docs/default-values.md ) | |
37- | Value classes | ✅ [ example] ( ./docs/value-classes.md ) | |
38- | Enums | ✅ [ example] ( ./docs/enums.md ) | |
39- | Lists | ✅ [ example] ( ./docs/lists.md ) | |
40- | Maps | ✅/⚠ [ example] ( ./docs/maps.md ) | Maps with complex keys are converted to an ES6 Map. [ See] ( ./docs/maps.md#maps-with-complex-keys ) |
41- | Polymorphism - Sealed classes | ✅/⚠ [ example] ( ./docs/polymorphism.md#sealed-classes ) | Nested sealed classes are ignored |
42- | Polymorphism - Open classes | ❌ [ example] ( ./docs/abstract-classes.md ) | Not implemented. Converted to ` type MyClass = any ` |
43- | Edge cases - circular dependencies | ✅ [ example] ( ./docs/edgecases.md ) | |
37+ | | Status | Notes |
38+ | ---------------------------------------| ----------------------------------------------------------| :-------------------------------------------------------------------------------------------------|
39+ | Kotlin multiplatform | ❓ | The codebase is multiplatform, but only JVM has been tested |
40+ | ` @SerialName ` | ✅/⚠ | The serial name is directly converted and might produce invalid TypeScript |
41+ | Basic classes | ✅ [ example] ( ./docs/basic-classes.md ) | |
42+ | Nullable and default-value properties | ✅ [ example] ( ./docs/default-values.md ) | |
43+ | Value classes | ✅ [ example] ( ./docs/value-classes.md ) | |
44+ | Enums | ✅ [ example] ( ./docs/enums.md ) | |
45+ | Lists | ✅ [ example] ( ./docs/lists.md ) | |
46+ | Maps | ✅/⚠ [ example] ( ./docs/maps.md ) | Maps with complex keys are converted to an ES6 Map, [ see] ( ./docs/maps.md#maps-with-complex-keys ) |
47+ | Polymorphism - Sealed classes | ✅/⚠ [ example] ( ./docs/polymorphism.md#sealed-classes ) | Nested sealed classes are ignored, [ see] ( ./docs/polymorphism.md#nested-sealed-classes ) |
48+ | Polymorphism - Open classes | ❌ [ example] ( ./docs/abstract-classes.md ) | Not implemented. Converted to ` type MyClass = any ` |
49+ | ` @JsonClassDiscriminator ` | ❌ | Not implemented |
50+ | Edge cases - circular dependencies | ✅ [ example] ( ./docs/edgecases.md ) | |
0 commit comments