/rewatch

Rewatch is an alternative build system for the Rescript Compiler.

Primary LanguageRust

Rewatch

Release

Info

Rewatch is an alternative build system for the Rescript Compiler which uses Ninja. It strives to deliver consistent and faster builds in monorepo setups with multiple packages, where the default build system fails to pick up changed interfaces across multiple packages.

Project Status

This project should be considered Alpha Status. Currently used to solve a very specific problem within Walnut. We're open to PR's and other contributions to make this more solid.

  • Compile Monorepo's with multiple packages
  • Correctly compile to different formats than .mjs (taken from bsconfig)
    • Error Handling - we still panic here-and-there, don't expect a super smooth UX
    • Compile Single Package
    • Configure executables - potentially interop with some Melange / Bucklescript / ReasonML subset

Usage

  1. Install the package
yarn add @rolandpeelen/rewatch
  1. Build / Clean / Watch
yarn rewatch build .
yarn rewatch clean .
yarn rewatch watch .

Where . is the folder where the 'root' bsconfig.json lives. If you encounter a 'stale build error', either directly, or after a while, a clean may be needed to clean up some old compiler assets.

Contributing

Pre-requisites:

  • Rust
  • NodeJS - For running testscripts only
  • Yarn or Npm - Npm probably comes with your node installation
  1. cd testrepo && yarn (install dependencies for submodule)
  2. cargo run

Running tests:

  1. ./tests/suite.sh