Skip to content

Releases: Kotlin/dukat

0.5.0

28 May 12:04
Compare
Choose a tag to compare

This release changes behaviour in some common scenarios so we've decided to update version to 0.5.0.

Say, we have declarationA.d.ts and declarationB.d.ts. Say, also, declarationA depends on ClassA from libC,
while declarationB is importing InterfaceB from libC.

Before this release running both dukat declarationA.d.ts and dukat declarationB.d.ts
would have generate all definitions for libC, which can be pretty big and contain hundreds of declarations
which dukat user actually had no intentions to use. Users actually asked us a lot to translate only those
of declarations that are actually needed. We've implemented this but everything comes with a price.

So, as of know calling dukat declarationA.d.ts will translate only ClassA and its dependencies from libC.
The same will do the dukat declarationB.d.ts. It's very important to understand that this can lead for the loss
of declarations that declarationA depends on
. To avoid this just call dukat passing both declarationA.d.ts and declarationB.d.ts.

In other words, translate all declarations you need in a single pass, this is the main scenario.

  • #283 Add possibility to pass tsconfig.json
  • #245 Merge interfaces and classes
  • #281 Override is not resolved correctly for classes with generic parents that are narrowed down
  • #280 Method copied to interface implementation preserving type params
  • #268 Conflicting overloads are not resolved for functions
  • #265 Default export is not propagated to the overloaded implementations
  • #252 Dynamic type aliases are impossible

0.0.28

13 Feb 14:59
Compare
Choose a tag to compare

[0.0.28] - 13'February 2020

  • [descriptors] support for inline and crosslinine modifiers in descriptors
  • [typescript] Inlined invoke extension function can have return type
  • [typescript] Merge vars and interfaces even if they are in different files (but in the same package)
  • [typescript] Merge classlikes correctly (under some conditions they were copied after merge)
  • [typescript] Preserve type params while resolving this return type in extension functions

0.0.27

07 Feb 14:25
Compare
Choose a tag to compare

[0.0.27] - 07'February 2020

  • [build] make it possible to build with arbitrary version of kotlin compiler
  • [build] typescript compiler version updated to 3.5.3
  • [descriptors] support for compiling with 1.3.70-eap-42
  • [typescript] Move top level declarations into a separate file whenever it's invalid to keep them with the rest of declarations (that is, when there's file-level JsQualifier or JsModule annotations)
  • [idl] Don't add import for the same package this file belongs to

0.0.26

24 Jan 11:02
Compare
Choose a tag to compare

[0.0.26] - 24'January 2020

  • In some cases something that is a valid override in typescript is not an override in kotlin, we have to copy overriden method to the descendant class.
  • Rename class if it's name clashes with the named import
  • Types from optional params are not forcibly converted to nullables
    Inline extension functions generated from interfaces are unrolled if there're optional params.

0.0.25

14 Jan 23:50
Compare
Choose a tag to compare

[0.0.25] - 15'January, 2020

  • Minimal CLI support for compiling binary descriptors (this one so far is for dev purposed)
  • Some overrides in Typescript are not treated as such in Kotlin, so we have to add reintroduce them to the descendant classes
  • Filter out all class parents except the very first one for classes

0.0.24

05 Dec 14:39
Compare
Choose a tag to compare

[0.0.24] - 05'December, 2019

  • In some cases @Suppress("NESTED_CLASS_IN_EXTERNAL_INTERFACE") was missing.
  • Mutliple escaping issues fixes.
  • Rename params instead of escaping them (for instance, object renamed to just obj).
  • Convert UnionType to string whenever it's possible.
  • Resolve "import as" clauses and introduce imports accordingly.
  • Resolve overrides for nested classes and interfaces.
  • Remove conflicting overloads.
  • Treat names starting with dot as non-supportable. Unforunately, we need to introduce some changes in Kotlin/JS compiler itself for supporting property names not accessible via dot.
  • Always add JsNonModule alongside with JsModule.
  • Convert boolean literals to Boolean while converting types.
  • Copy methods generated from unrolled union types to ancestor classes.

0.0.23

07 Nov 09:37
Compare
Choose a tag to compare

[0.0.23] - 07'November, 2019

  • equals should have "override" modifier only when param is Any?
  • Resolve file names from namespaced nodejs packages.
  • Correct override resolving for methods with return type.
  • Resolve overrides when return type is generic.
  • Replace ReadonlyArray from ts stdlib with just Array.
  • Preserve TypeParams in unaliased entities in cases when they were lost.
  • Replace entity inherited from a final class (in a Kotlin stdlib sense with alias.

0.0.22

31 Oct 12:41
Compare
Choose a tag to compare

[0.0.22] - 31'October, 2019

  • Better support for Partial. Whenever this class is defined in this particular declaration source set,
    new class is generated which mimicks Partial behaviour.
  • Resolving relative module names (see #110 - Inconsistent naming while translating @types/lodash)
  • Support type references in typescript declarations.

0.0.21

22 Oct 07:34
Compare
Choose a tag to compare

[0.0.21] - 22'October, 2019

  • #133 Lack of type params in generated interfaces
  • #136 Convert nested nullable unions correctly
  • #141 ThisTypeDeclaration leak in inline functions generated from merged interfaces
  • Default ts library is switched to lib.es6.d.ts.

0.0.20

10 Oct 16:27
Compare
Choose a tag to compare

With this release idl target is no longer experimental. It's main focus remains the same, however:
to generate stdlib for following releases of Kotlin/JS.