Skip to content

Releases: ArcadeMode/TypeShim

v1.4.0

03 Mar 21:09
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Summary

  • Performance optimizations and NativeAOT have yielded a performance boost of ~10x for codegen, which now runs in ~100ms on average runtimes used to be in the ~1s range.
  • New feature: XML comments on members are now translated to TSDoc to add more information to the interop boundary, all member types and formatting tags supported in C# have been implemented
  • Bugfix: constructor parameters that could be passed an initializer would generate TypeScript with errors
  • Fewer allocations and LoC generated in C# code using Tasks

What's Changed

Full Changelog: v1.3.0...v1.4.0

v1.3.0

15 Feb 21:52
Immutable release. Only release title and notes can be modified.
4f511c6

Choose a tag to compare

Summary

Support for Span and ArraySegment has been implemented and will present in TypeScript as IMemoryView<TArray> where TArray informs of the underlying type representing the memory region such as Float64Array for double.

This marks the completion of implementing support for all .NET-JS interop types. TypeShim now officially offers a strict superset of functionality over the 'bare' JSExport Api.

What's Changed

Full Changelog: v1.2.0...v1.3.0

v1.2.0

11 Feb 21:03
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Summary

  • Simplified initialization by passing return value from dotnet.create() directly into TypeShimInitializer.initialize(...).
  • Proxy objects now preserve reference equality (identity).
  • Memory release of initializer objects is sped up significantly. (Memory benchmarks saw a 20% reduction in memory usage).
  • TSExport classes that implement IDisposable will auto dispose their handles when Dispose() is invoked from JS.

What's Changed

Full Changelog: v1.1.1...v1.2.0

v1.1.1

07 Feb 23:42
Immutable release. Only release title and notes can be modified.
c856fb0

Choose a tag to compare

Summary

  • Inform through diagnostics about generic classes not being supported. Stop codegen when encountering generic class instead of generating invalid code.
  • Fix bug in TS initializer parameter interop transforms for get-only properties

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

06 Feb 22:49
Immutable release. Only release title and notes can be modified.
22ae7e8

Choose a tag to compare

Summary

  • New support for Action and Func types
    • Can be used as property types and in object initializers
    • Can be used as method params/return types
    • Proxies can be passed as parameters and return types in both delegate types
    • Initializers can be passed in delegate parameters for auto construction
  • Bugfix: corrected conversions for char?
  • Denser codegen by relying on fewer temps
  • Customized JSObject shim rendering to reduce unnecessary codegen output

Stability improvements

To supplement the existing unit tests, E2E testing has been introduced for deeper validation of TypeShim. Including runtime behavior of various types and scenarios on both NodeJS and Browser runtimes.

What's Changed

Full Changelog: v1.0.2...v1.1.0

v1.0.2

17 Jan 20:00
Immutable release. Only release title and notes can be modified.
5a4e209

Choose a tag to compare

Summary

  • Initializer property type support supplemented to match properties and methods
  • No nullability warnings in generated C# classes
  • Null values in non-nullable initializer properties throw exceptions with meaningful messages
  • Auto convert c# char from js number to js string

What's Changed

Full Changelog: v1.0.1...v1.0.2

v1.0.1

12 Jan 19:55

Choose a tag to compare

What's Changed

  • Fixed bug where using JSObject would fail code gen
  • Fixed Roslyn AnalyzerReleases md's

Full Changelog: v1.0.0...v1.0.1

v1.0.0

03 Jan 21:30

Choose a tag to compare

What's Changed

  • New TypeShimInitializer
  • type support for nullable reference types, arrays and tasks.
  • Real static members in TypeScript
  • Removed TSModule, statics are now supported with TSExport
  • Callable C# constructors in TypeScript
  • Introduced Initializer object for constructors
  • Initializer can conditionally be passed as method parameters and be received as initialized class instances in C#

Full Changelog: v0.9.0...v1.0.0

v0.9.0

11 Dec 14:22

Choose a tag to compare

What's Changed

First working version with core features like

  • TSExport / TSModule attribute based interop facade generation
  • Instance members in TypeScript
  • Properties in TypeScript
  • Extended types and most .NET interop types supported
  • First Analyzers

Gathering feedback for 1.0.0

Full Changelog: https://github.com/ArcadeMode/TypeShim/commits/v0.9.0