blob: b048ede5f8e0034b918b0b764e44d9f9014c9198 [file] [view]
# 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](https://medium.com/@mmorearty/how-to-create-a-persistent-worker-for-bazel-7738bba2cabb)
## 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.
[worker example]: https://github.com/bazelbuild/rules_nodejs/tree/stable/examples/worker
## 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.