<!-- *********************
  DO NOT EDIT THIS FILE
  It is a generated build output from Stardoc.
  Instead you must edit the .bzl file where the rules are declared,
  or possibly a markdown file next to the .bzl file
 ********************* -->
# Toolchains

API docs for [Toolchain](https://docs.bazel.build/versions/main/toolchains.html) support.

When you call `nodejs_register_toolchains()` in your `WORKSPACE` file it will setup a node toolchain for executing tools on all currently supported platforms.

If you have an advanced use-case you can also register your own toolchains. See [node_toolchain](./Core.md#node_toolchain)

## Node.js binary for the target platform

Sometimes your target platform (where your software runs) is different from the host platform (where you run Bazel) or execution platform (where Bazel actions run).
The most common case is developing a docker image on MacOS, which will execute in a Linux container.

Our toolchain support is conditional on the execution platform, as it's meant for running nodejs tools during the build.
It is not needed for this use case. Instead, simply select the nodejs you want to include in the runtime.

For example, rules_docker has a `nodejs_image` rule, which takes a `node_repository_name` attribute indicating
which nodejs binary you want to include in the image. `nodejs_linux_amd64` is the value you'd use.

## Cross-compilation

Bazel Toolchains are intended to support cross-compilation, e.g. building a linux binary from mac or windows.
Most JavaScript use cases produce platform-independent code,
but the exception is native modules which use [node-gyp](https://github.com/nodejs/node-gyp).
Any native modules will still be fetched and built, by npm/yarn, for your host platform,
so they will not work on the target platform.
The workaround is to perform the npm_install inside a docker container so that it produces modules for the target platform.

Follow https://github.com/bazelbuild/rules_nodejs/issues/506 for updates on support for node-gyp cross-compilation.

## node_toolchain

See <./Core.md#node_toolchain>



## cypress_toolchain

**USAGE**

<pre>
cypress_toolchain(<a href="#cypress_toolchain-name">name</a>, <a href="#cypress_toolchain-cypress_bin">cypress_bin</a>, <a href="#cypress_toolchain-cypress_bin_path">cypress_bin_path</a>, <a href="#cypress_toolchain-cypress_files">cypress_files</a>)
</pre>

Defines a cypress toolchain.

For usage see https://docs.bazel.build/versions/main/toolchains.html#defining-toolchains.


**ATTRIBUTES**


<h4 id="cypress_toolchain-name">name</h4>

(*<a href="https://bazel.build/docs/build-ref.html#name">Name</a>, mandatory*): A unique name for this target.


<h4 id="cypress_toolchain-cypress_bin">cypress_bin</h4>

(*<a href="https://bazel.build/docs/build-ref.html#labels">Label</a>*): A hermetically downloaded cypress executable binary for the target platform.

Defaults to `None`

<h4 id="cypress_toolchain-cypress_bin_path">cypress_bin_path</h4>

(*String*): Path to an existing cypress executable for the target platform.

Defaults to `""`

<h4 id="cypress_toolchain-cypress_files">cypress_files</h4>

(*<a href="https://bazel.build/docs/build-ref.html#labels">Label</a>*): A hermetically downloaded cypress filegroup of all cypress binary files for the target platform. Must be set when cypress_bin is set.

Defaults to `None`


## configure_esbuild_toolchains

**USAGE**

<pre>
configure_esbuild_toolchains(<a href="#configure_esbuild_toolchains-name">name</a>, <a href="#configure_esbuild_toolchains-platforms">platforms</a>)
</pre>

Configures esbuild toolchains for a list of supported platforms

**PARAMETERS**


<h4 id="configure_esbuild_toolchains-name">name</h4>

unused

Defaults to `""`

<h4 id="configure_esbuild_toolchains-platforms">platforms</h4>

dict of platforms to configure toolchains for

Defaults to `{}`


## cypress_repositories

**USAGE**

<pre>
cypress_repositories(<a href="#cypress_repositories-name">name</a>, <a href="#cypress_repositories-version">version</a>, <a href="#cypress_repositories-linux_urls">linux_urls</a>, <a href="#cypress_repositories-linux_sha256">linux_sha256</a>, <a href="#cypress_repositories-darwin_urls">darwin_urls</a>, <a href="#cypress_repositories-darwin_sha256">darwin_sha256</a>,
                     <a href="#cypress_repositories-darwin_arm64_urls">darwin_arm64_urls</a>, <a href="#cypress_repositories-darwin_arm64_sha256">darwin_arm64_sha256</a>, <a href="#cypress_repositories-windows_urls">windows_urls</a>, <a href="#cypress_repositories-windows_sha256">windows_sha256</a>)
</pre>

    Repository rule used to install cypress binary.

**PARAMETERS**


<h4 id="cypress_repositories-name">name</h4>

Name of the external workspace where the cypress binary lives



<h4 id="cypress_repositories-version">version</h4>

Version of cypress binary to use. Should match package.json



<h4 id="cypress_repositories-linux_urls">linux_urls</h4>

(Optional) URLs at which the cypress binary for linux distros of linux can be downloaded. If omitted, https://cdn.cypress.io/desktop will be used.

Defaults to `[]`

<h4 id="cypress_repositories-linux_sha256">linux_sha256</h4>

(Optional) SHA-256 of the linux cypress binary

Defaults to `""`

<h4 id="cypress_repositories-darwin_urls">darwin_urls</h4>

(Optional) URLs at which the cypress binary for darwin can be downloaded. If omitted, https://cdn.cypress.io/desktop will be used.

Defaults to `[]`

<h4 id="cypress_repositories-darwin_sha256">darwin_sha256</h4>

(Optional) SHA-256 of the darwin cypress binary

Defaults to `""`

<h4 id="cypress_repositories-darwin_arm64_urls">darwin_arm64_urls</h4>

(Optional) URLs at which the cypress binary for darwin arm64 can be downloaded. If omitted, https://cdn.cypress.io/desktop will be used (note: as of this writing (11/2021), Cypress does not have native arm64 builds, and this URL will link to the x86_64 build to run under Rosetta).

Defaults to `[]`

<h4 id="cypress_repositories-darwin_arm64_sha256">darwin_arm64_sha256</h4>

(Optional) SHA-256 of the darwin arm64 cypress binary

Defaults to `""`

<h4 id="cypress_repositories-windows_urls">windows_urls</h4>

(Optional) URLs at which the cypress binary for windows distros of linux can be downloaded. If omitted, https://cdn.cypress.io/desktop will be used.

Defaults to `[]`

<h4 id="cypress_repositories-windows_sha256">windows_sha256</h4>

(Optional) SHA-256 of the windows cypress binary

Defaults to `""`


## esbuild_repositories

**USAGE**

<pre>
esbuild_repositories(<a href="#esbuild_repositories-name">name</a>, <a href="#esbuild_repositories-npm_repository">npm_repository</a>, <a href="#esbuild_repositories-npm_args">npm_args</a>, <a href="#esbuild_repositories-kwargs">kwargs</a>)
</pre>

Helper for fetching and setting up the esbuild versions and toolchains

This uses Bazel's downloader (via `http_archive`) to fetch the esbuild package
from npm, separately from any `npm_install`/`yarn_install` in your WORKSPACE.
To configure where the download is from, you make a file containing a rewrite rule like

    rewrite (registry.nodejs.org)/(.*) artifactory.build.internal.net/artifactory/$1/$2

You can find some documentation on the rewrite patterns in the Bazel sources:
[UrlRewriterConfig.java](https://github.com/bazelbuild/bazel/blob/4.2.1/src/main/java/com/google/devtools/build/lib/bazel/repository/downloader/UrlRewriterConfig.java#L66)

Then use the `--experimental_downloader_config` Bazel option to point to your file.
For example if you created `.bazel_downloader_config` you might add to your `.bazelrc` file:

    common --experimental_downloader_config=.bazel_downloader_config


**PARAMETERS**


<h4 id="esbuild_repositories-name">name</h4>

currently unused

Defaults to `""`

<h4 id="esbuild_repositories-npm_repository">npm_repository</h4>

the name of the repository where the @bazel/esbuild package is installed
by npm_install or yarn_install.

Defaults to `"npm"`

<h4 id="esbuild_repositories-npm_args">npm_args</h4>

additional args to pass to the npm install rule

Defaults to `[]`

<h4 id="esbuild_repositories-kwargs">kwargs</h4>

additional named parameters to the npm_install rule




