Open unicomp21 opened 2 years ago
Possibly. I was looking at typescript instead of WebIDL (e.g. https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts) as TS is much closer to C# than WebIDL like https://searchfox.org/mozilla-central/source/dom/webidl/Window.webidl
Isn't the typescrpt generated from webidl? @yoshiki-okawa
Maybe we could use this to generate the c# interop code? Am I looking at this right? https://github.com/jsdom/webidl2js
What I mean is that I think it is possible to do code gen based on https://github.com/microsoft/TypeScript/blob/main/lib/lib.dom.d.ts to cover pretty much all WebIDL. lib.dom.d.ts is generated from MDN Web APIs (https://developer.mozilla.org/en-US/docs/Web/API) but pretty much same as WebIDL.
Got it, I understand. But, would this be easier than changing
https://github.com/microsoft/TypeScript-DOM-lib-generator
to generate c# rather than typescript? I think it already iterates the webidl tree? Or is there something else I'm missing?
Either way would work but I think code gen based on lib.dom.d.ts would be easier than understanding and modifying the generator.
@yoshiki-okawa is this more in line w/ your thinking? From what I can tell, dart syntax looks a lot like c#? If I'm not mistaken, this project is generating dart wrappers from typescript typedefinitions?
I'm wondering if there will also be demand in the near future for wrapping c++ w/ c# pinvoke wrappers? When using webassembly? https://emscripten.org/docs/porting/connecting_cpp_and_javascript/WebIDL-Binder.html
(ie kill two birds w/ one stone)
yes babylon_dart_gen is pretty much what's in my mind. regarding c++, if you are talking about c# -> JS -> c++, I cannot see benefit of it.
my thinking was generating c# -> c++ pinvoke wrappers, where the c++ api is described in webidl. but the more I think about it, this sort of thing is probably better filled by something like protobuf.
https://github.com/EbramTawfik/GeckoFX/issues/3
Is it possible to wrap everything?