@bazel/worker

Adapt Node programs to run as a Bazel worker

Usage no npm install needed!

<script type="module">
  import bazelWorker from 'https://cdn.skypack.dev/@bazel/worker';
</script>

README

Bazel Worker support

Bazel workers allow actions to be executed by a program that stays running.

Learn more about Bazel workers from Mike Morearty's medium article

Typical usage

Read index.d.ts for the worker API. Essentially you call runWorkerLoop passing it a function to call back when each build request arrives.

See the worker example for a full example with comments.

Restrictions on programs that run as a worker

Accept arguments as a params file

stdin and stdout of the process are reserved for the worker protocol with Bazel. That means anything that does a console.log can cause an error. Bazel prints a snippet of whatever was printed to stdout to help you track it down. Writing to stderr is fine, for example with console.error. In the future, we might improve this worker library to patch out the nodejs console.log function so that it doesn't interfere with the worker protocol.