esamattis / deno_karabiner

Write Complex Modifications for Karabiner-Elements using Typescript and Deno.
https://deno.land/x/karabiner
MIT License
18 stars 3 forks source link

No types from package...? #3

Open martaver opened 3 years ago

martaver commented 3 years ago

Hey man, nice idea using typescript to manipulate karabiner!

I haven't really played with Deno so I'm not sure if I'm doing something wrong or if its a bug on your end:

When I import deno_karabiner like so:

import { KarabinerComplexModifications } from "https://deno.land/x/karabiner@v0.2.1/karabiner.ts";

Then KarabinerComplexModifications is type any.

Any idea what's going wrong?

martaver commented 3 years ago

Actually I suspect this is a problem with the Webstorm Deno plugin...

esamattis commented 3 years ago

Hey man, nice idea using typescript to manipulate karabiner!

Thanks!

Then KarabinerComplexModifications is type any.

I was actually kinda able to reproduce this with VSCode and the Deno extension but it went away after upgrading Deno to 1.8.3. I was using 1.7.5 previously.

Now I get types as expected

image

martaver commented 3 years ago

Hm... so like I said I'm not a deno expert, but the Deno tooling seems kind of sparse and inferior to the regular node/TS tooling.

I've forked your repo and switch out deno for node, so that I can just use the regular tooling instead. I could, however, set up an adapter for the file reads/writes and env read so that we could run the same code against both node and deno, change only the entry point.

Do you have any interest in this if I create a PR?

esamattis commented 3 years ago

Ya, the tooling is definitely a bit behind but I'm pretty confident that it will catch up as time goes on.

Do you have any interest in this if I create a PR?

To be honest one reason I used Deno was to see where it is and how it evolves in future. So not interested atm :)

But do post the link to your fork here so others can find it too! 👍

martaver commented 3 years ago

Hm... the thing is I also have other updates to Types etc, which I auto-generated from karabiner documentation / rules. It would be ideal to be able to keep rolling improvements into the same repository. If you allowed the access to node/deno via an adapter interface, then we could keep the code together, and mutually benefit. And probably more people would contribute, too.

I don't see how that would prevent you from rolling with Deno.