|
2 | 2 |
|
3 | 3 | # Kotlinx Serialization TypeScript Generator
|
4 | 4 |
|
5 |
| -Create TypeScript interfaces from Kotlinx Serialization classes. |
| 5 | +[Kotlinx Serialization TypeScript Generator](https://github.com/adamko-dev/kotlinx-serialization-typescript-generator) |
| 6 | +creates TypeScript interfaces from |
| 7 | +[Kotlinx Serialization](https://github.com/Kotlin/kotlinx.serialization/) |
| 8 | +classes. |
6 | 9 |
|
7 | 10 | ```kotlin
|
8 | 11 | @Serializable
|
@@ -52,17 +55,17 @@ See [the docs](./docs) for working examples.
|
52 | 55 |
|
53 | 56 | This is a proof-of-concept.
|
54 | 57 |
|
55 |
| -| | Status | Notes | |
56 |
| -|---------------------------------------|----------------------------------------------------------|:-------------------------------------------------------------------------------------------------| |
57 |
| -| Kotlin multiplatform | ❓ | The codebase is multiplatform, but only JVM has been tested | |
58 |
| -| `@SerialName` | ✅/⚠ | The serial name is directly converted and might produce invalid TypeScript | |
59 |
| -| Basic classes | ✅ [example](./docs/basic-classes.md) | | |
60 |
| -| Nullable and default-value properties | ✅ [example](./docs/default-values.md) | | |
61 |
| -| Value classes | ✅ [example](./docs/value-classes.md) | | |
62 |
| -| Enums | ✅ [example](./docs/enums.md) | | |
63 |
| -| Lists | ✅ [example](./docs/lists.md) | | |
64 |
| -| Maps | ✅/⚠ [example](./docs/maps.md) | Maps with complex keys are converted to an ES6 Map, [see](./docs/maps.md#maps-with-complex-keys) | |
65 |
| -| Polymorphism - Sealed classes | ✅/⚠ [example](./docs/polymorphism.md#sealed-classes) | Nested sealed classes are ignored, [see](./docs/polymorphism.md#nested-sealed-classes) | |
66 |
| -| Polymorphism - Open classes | ❌ [example](./docs/abstract-classes.md) | Not implemented. Converted to `type MyClass = any` | |
67 |
| -| `@JsonClassDiscriminator` | ❌ | Not implemented | |
68 |
| -| Edge cases - circular dependencies | ✅ [example](./docs/edgecases.md) | | |
| 58 | +| | Status | Notes | |
| 59 | +|---------------------------------------|----------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------| |
| 60 | +| Kotlin multiplatform | ❓ | The codebase is multiplatform, but only JVM has been tested | |
| 61 | +| `@SerialName` | ✅/⚠ | The serial name is directly converted and might produce invalid TypeScript | |
| 62 | +| Basic classes | ✅ [example](./docs/basic-classes.md) | | |
| 63 | +| Nullable and default-value properties | ✅ [example](./docs/default-values.md) | | |
| 64 | +| Value classes | ✅ [example](./docs/value-classes.md) | | |
| 65 | +| Enums | ✅ [example](./docs/enums.md) | | |
| 66 | +| Lists | ✅ [example](./docs/lists.md) | | |
| 67 | +| Maps | ✅/⚠ [example](./docs/maps.md) | Maps with complex keys are converted to an ES6 Map, [see documentation](./docs/maps.md#maps-with-complex-keys) | |
| 68 | +| Polymorphism - Sealed classes | ✅/⚠ [example](./docs/polymorphism.md#sealed-classes) | Nested sealed classes are ignored, [see documentation](./docs/polymorphism.md#nested-sealed-classes) | |
| 69 | +| Polymorphism - Open classes | ❌ [example](./docs/abstract-classes.md) | Not implemented. Converted to `type MyClass = any` | |
| 70 | +| `@JsonClassDiscriminator` | ❌ | Not implemented | |
| 71 | +| Edge cases - circular dependencies | ✅ [example](./docs/edgecases.md) | | |
0 commit comments