Hi!

All of these are open source, but you are right that there have been no recent developments on them.

https://github.com/dotnet-websharper/typescript https://github.com/dotnet-websharper/babylonjs https://github.com/dotnet-websharper/threejs

WebSharper.TypeScript uses a custom parser for .d.ts and it is very outdated, works with massaged inputs that have syntax later than TS 0.9 removed. And it is also doing its own IL generation, because of which it is not trivial to update to netstandard, I have made an attempt at https://github.com/dotnet-websharper/typescript/tree/netstandard-emit/msbuild

There are multiple unfinished TypeScript-related projects for WebSharper, there is one I was thinking to revisit already, maybe not much work needed to produce something to supersede WebSharper.TypeScript: it is a .ts script that converts a .d.ts to JSON using the official TS compiler, then a library that converts the JSON to a WebSharper.InterfaceGenerator definition, avoiding both major problems with old WebSharper.TypeScript. I will give an update on this.

By on 6/25/2019 9:02 AM ()

That said, while TS 0.9 syntax is clearly outdated, it should suffice for describing most APIs (with manual tweaks as needed) - including the latest of BabylonJS and ThreeJS. Another option for binding similarly large libs is using WIG. The third approach based on what @JankoA is describing could be a viable alternative if you can bear the extra baggage of TS and nodejs, here we should most definitely ask @ctaggart to help port his earlier work in this area to WebSharper.

By on 6/28/2019 2:28 PM ()

Thanks @Adam Granicz. I've picked up the exisiting WIG version of ThreeJs (https://github.com/dotnet-websharper/threejs). It was rather outdated, so I will be pushing changes to update it.

We resorted to 3rd party tools to go from TS to F#, and then write our own parser to generate some of the WIG files. However, this is basically reinventing what the TypeScript parser does. Maybe we should focus on updating the parser.

One of the reasons we want to avoid WIG is that it still requires manual intervention.

If @ctaggart could help with the port to a more up-to-date version (.netstandard for starters) we could pick up the rest and keep it going. We have a large codebase using WebSharper now, so we are very interested in this going forward.

By on 7/1/2019 1:56 AM ()