Skip to content

Commit e0583a3

Browse files
committed
docs update
1 parent aa13efa commit e0583a3

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

README.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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

2731
See [the docs](./docs) for working examples.
2832

2933
## Status
3034

3135
This 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) | |

modules/kxs-ts-gen-processor/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ plugins {
77
// id("org.jetbrains.reflekt")
88
}
99

10+
description = "Experimental alternative to Kotlinx Serialization. Currently unused."
11+
1012
val kspVersion = "1.6.10-1.0.4"
1113
val kotlinCompileTestingVersion = "1.4.7"
1214
val kotlinxSerializationVersion = "1.3.2" // TODO put dependencies in libs.version.toml

0 commit comments

Comments
 (0)