Connect the dots!
Dots is a tool that generates ClojureScript wrappers for JavaScript libraries
using their TypeScript definitions. Usually, these are distributed
using .d.ts files -- hence the name.
You can find pre-built ClojureScript wrappers in the dots-cljs GitHub organization.
There is currently no pre-built distribution of dots, but you can clone this repository.
Dots is a CLI program built with Shadow CLJS.
Compile in release mode:
npm run release
This will create a JavaScript program dist/dots.js that you can run using NodeJS:
node dist/dots.js --help
Dots uses the TypeScript compiler to analyse .d.ts files. First you need to
install the type bindings of the library you wish to wrap using npm or yarn,
using a package.json file.
For example, this installs @types/node, the TypeScript definitions
for Node's built-in libraries:
npm install @types/node
Then you can run dots to generate ClojureScript code. To create wrappers for
the path module, run:
node path/to/dots.js path
By default, dots will create wrapper namespaces called dots.<module> and
write output files to target/dots. You can override these defaults using
the -n and -o CLI options:
node path/to/dots.js -o ../dots-cljs/dots-node -n dots.node.path path
Run node dist/dots.js --help for more information.
Start a watch:
npm run watch
Run the program in REPL mode:
node dist/dots.js --repl
Now you can connect your IDE to the Shadow-CLJS REPL.
Distributed under the MIT License.
Copyright © 2024 Ferdinand Beyer