Tooling ======= MakrellTS already has a meaningful tooling shape. The TypeScript track is not only about language forms; it also lives inside the normal build, test, and runtime expectations of JS and TS projects. Current areas ------------- The current tooling emphasis includes: * CLI usage * build workflow * type-checking and linting * browser and bundler integration * implementation material for import and runtime behaviour Relevant implementation material in the repo -------------------------------------------- Some useful implementation-oriented files are: * ``impl/ts/src/browser.ts`` * ``impl/ts/src/meta_worker.ts`` * ``impl/ts/COMPATIBILITY.md`` * ``impl/ts/IMPORT_MODEL.md`` Basic workflow -------------- Install the CLI: .. code-block:: bash bun add -g makrellts Run a source file: .. code-block:: bash makrellts hello.mrts Emit generated JavaScript: .. code-block:: bash makrellts hello.mrts --emit-js Check a file and emit diagnostics: .. code-block:: bash makrellts check hello.mrts --json Repository development workflow ------------------------------- From ``impl/ts``: .. code-block:: bash bun install bun run build bun run test bun run typecheck Browser-related material ------------------------ MakrellTS also has a browser-oriented tooling direction. The current implementation material includes browser entry points, browser examples, and an import/runtime model intended to support JS/TS environments beyond only a single CLI workflow. Why this matters ---------------- The TypeScript track is often most useful when it fits ordinary JS/TS development practice rather than forcing a separate mental model. Build, typecheck, lint, and browser-related tooling are therefore part of the language story, not just peripheral maintenance tasks. Suggested workflow ------------------ A practical local workflow is: #. install ``makrellts`` #. run a small source file through the CLI #. use ``check`` and ``--emit-js`` when needed #. switch to the repo workflow when you are working on MakrellTS itself Where to continue ----------------- * :doc:`install` * :doc:`cookbook-cli` * :doc:`cookbook-browser` * :doc:`interop` * :doc:`metaprogramming`