Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.aspect.build/llms.txt

Use this file to discover all available pages before exploring further.

Repository rules for fetching the swc toolchain. For typical usage, see the snippets provided in the rules_swc release notes.

Version matching

To keep the swc version in sync with non-Bazel tooling, use swc_version_from. Currently this only works when a single, pinned version appears, see: https://github.com/aspect-build/rules_ts/issues/308 For example, package.json:
{
  "devDependencies": {
    "@swc/core": "1.3.37"
  }
}
Allows this in WORKSPACE:
swc_register_toolchains(
    name = "swc",
    swc_version_from = "//:package.json",
)

Function: swc_register_toolchains

Convenience macro for users which does typical setup.
  • create a repository for each built-in platform like “swc_linux_amd64”
  • create a repository exposing toolchains for each platform like “swc_platforms”
  • register a toolchain pointing at each platform Users can avoid this macro and do these steps themselves, if they want more control.

Parameters

name
unknown
required
base name for all created repos; we recommend swc
swc_version
unknown
default:"None"
version of the swc project, from https://github.com/swc-project/swc/releases Exactly one of swc_version or swc_version_from must be set.
swc_version_from
unknown
default:"None"
label of a json file which declares an @swc/core version.This may be a package.json file, with “@swc/core” in the dependencies or devDependencies property, and the version exactly specified.With rules_js v1.32.0 or greater, it may also be a resolved.json file produced by npm_translate_lock, such as @npm//path/to/linked:@swc/core/resolved.jsonExactly one of swc_version or swc_version_from must be set.
platforms
unknown
list of platforms (must be a key in PLATFORMS) to register toolchains for. Defaults to all platforms.
register
unknown
default:"True"
whether to call through to native.register_toolchains. Should be True for WORKSPACE users, but false when used under bzlmod extension
kwargs
unknown
passed to each swc_repositories call

Repository rule: swc_repositories

Fetch external dependencies needed to run the SWC cli

Attributes

name
name
required
A unique name for this repository.
repo_mapping
dictionary: String → String
In WORKSPACE context only: a dictionary from local repository name to global repository name. This allows controls over workspace dependency resolution for dependencies of this repository.For example, an entry "@foo": "@bar" declares that, for any time this repository depends on @foo (such as a dependency on @foo//some:target, it should actually resolve that dependency within globally-declared @bar (@bar//some:target).This attribute is not supported in MODULE.bazel context (when invoking a repository rule inside a module extension’s implementation function).
swc_version
string
default:"\"\""
Explicit version. If provided, the package.json is not read.
swc_version_from
label
default:"None"
Location of package.json which has a version for @swc/core.
platform
string
required
integrity_hashes
dictionary: String → String
default:"{}"
A mapping from platform to integrity hash.