- Instead of building index.js with esbuild and generating types with
tsc, use tsc to build index.js and index.d.ts.
- Use ts-node instead of swc for typescript based tests, as that
works with es modules.
- Remove "syntax_check" target from package.json as that's now
implied with "compile".
- Sadly this requires one "as any" cast as tsc somehow fails to
determine the right type info for node-fetch.
Unfortunately index.js can't be an ES module without breaking
compatiblity. It would imply that the Node.js port can't be used with
require() anymore. So even thought that would simplify things further,
it's not part of this PR.
napi and esbuild are not just dev dependencies. Since we distribute source packages, they are in fact
run-time dependencies, as
"npm install" will run "npm run build" and that
requires those two.
Share tsconfig.json so that ava runs the typescript compiler also on the tests.
Similary, the syntax check now also covers the tests.
Sadly, the exception that the Slint compiler throws is not type declared,
so we have to use any.
Similarly, the object share returned by loadFile() is unknown
in terms of properties, callbacks, etc.
For node and cpp, I use relative links to point to the slint language
reference documentation.
For the slint crate documentation I create a link to
https://slint-ui.com/releases/VERSION/... instead: This needs to work from
docs.rs as well as from our own docs area on slint-ui.com! That is
pretty ugly: I can not even define constants for this as the crate docs
need to come before anything else.