Skip to content

Commit

Permalink
Adopt new pnpm-based rules_js
Browse files Browse the repository at this point in the history
  • Loading branch information
alexeagle committed Apr 21, 2022
1 parent fe3dc0f commit 2a6a5d2
Show file tree
Hide file tree
Showing 9 changed files with 378 additions and 461 deletions.
4 changes: 3 additions & 1 deletion examples/macro/ts_project.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ def my_ts_project(name, srcs = []):
name = "run",
srcs = [src],
outs = [src.replace(".ts", ".js")],
cmd = """SWC_BINARY_PATH=$(SWC_BINARY_PATH) \\
cmd = """\
BAZEL_BINDIR=$(BINDIR) \\
SWC_BINARY_PATH=$(SWC_BINARY_PATH) \\
$(execpath @aspect_rules_swc//swc:cli) \\
$(location in.ts) \\
-o $@""",
Expand Down
11 changes: 6 additions & 5 deletions swc/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:write_file.bzl", "write_file")
load("@aspect_rules_js//js:nodejs_binary.bzl", "nodejs_binary")
load("@aspect_rules_js//js:js_binary.bzl", "js_binary")
load("@swc_cli//:package.bzl", "package")

# For stardoc to reference the files
exports_files(["swc.bzl"])
Expand All @@ -25,22 +26,22 @@ bzl_library(
],
)

# Workaround: nodejs_binary doesn't support entry points under external yet
# Workaround: js_binary doesn't support entry points under external yet
write_file(
name = "gen_main",
out = "main.cjs",
content = ["require('@swc/cli')"],
)

nodejs_binary(
js_binary(
name = "cli",
data = [
# Don't use the shorter syntax here because the user or bzlmod
# might use repository mapping to give a different name
# to the repository, e.g.
# @aspect_rules_swc.0.2.0.swc.npm__swc_core-1.2.119
"@npm__swc_cli-0.1.52//:pkg",
"@npm__swc_core-1.2.119//:pkg",
package("@swc/cli"),
"//swc/private:npm__@swc+core",
],
entry_point = "main.cjs",
visibility = ["//visibility:public"],
Expand Down
12 changes: 6 additions & 6 deletions swc/dependencies.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ def rules_swc_dependencies():
maybe(
http_archive,
name = "aspect_bazel_lib",
sha256 = "4d709266337d8e147fb647d6dfa3bbcfb6983ab79bece9cf661e3dc13ae3c3bc",
strip_prefix = "bazel-lib-0.6.1",
url = "https://github.com/aspect-build/bazel-lib/archive/refs/tags/v0.6.1.tar.gz",
sha256 = "fc1ad541c749187714261fe94ef6157e2c0f0cb33e1ee4197436e9c8967d161c",
strip_prefix = "bazel-lib-0.9.6",
url = "https://github.com/aspect-build/bazel-lib/archive/refs/tags/v0.9.6.tar.gz",
)

maybe(
http_archive,
name = "aspect_rules_js",
sha256 = "f4d5cf4d2a1395a67c965e6a5c3377d7a135efe147c616cb635edff00517e1de",
strip_prefix = "rules_js-bcbb2f29b13d320b32ac68978f52417a7c0981ab",
url = "https://github.com/aspect-build/rules_js/archive/bcbb2f29b13d320b32ac68978f52417a7c0981ab.tar.gz",
sha256 = "67fd0f62d701a451e17fb48be7208250c203f1e652085d9ee217ed7877fde91b",
strip_prefix = "rules_js-84c810238db555f5775993b1360d2380d098164c",
url = "https://github.com/aspect-build/rules_js/archive/84c810238db555f5775993b1360d2380d098164c.tar.gz",
)
12 changes: 12 additions & 0 deletions swc/private/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")
load("@swc_cli//:node_modules.bzl", "node_modules")
load("@npm__at_swc_core_1.2.119//:node_package.bzl", swc_core_package = "node_package")
load("@npm__at_node-rs_helper_1.2.1//:node_package.bzl", rs_helper_package = "node_package")
load("@npm__at_napi-rs_triples_1.1.0//:node_package.bzl", rs_triples_package = "node_package")

swc_core_package()

rs_helper_package()

rs_triples_package()

node_modules()

write_source_files(
name = "write_cli_repos",
Expand Down
140 changes: 84 additions & 56 deletions swc/private/cli_repositories.bzl
Original file line number Diff line number Diff line change
@@ -1,185 +1,213 @@
"""npm repositories for rules_swc
@generated by translate_package_lock.bzl from
@aspect_rules_swc//swc/private:package-lock.json
"""
"@generated by translate_pnpm_lock.bzl from @aspect_rules_swc//swc/private:pnpm-lock.json"

load("@aspect_rules_js//js:npm_import.bzl", "npm_import")

def npm_repositories():
"Define external repositories to fetch each tarball individually from npm on-demand."

npm_import(
name = "npm__nodelib_fs.scandir-2.1.5",
name = "swc_cli__at_nodelib_fs.scandir_2.1.5",
integrity = "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
link_package_guard = "swc/private",
package = "@nodelib/fs.scandir",
version = "2.1.5",
deps = ["@npm__nodelib_fs.stat-2.0.5", "@npm_run-parallel-1.2.0"],
deps = ["@nodelib/[email protected]", "[email protected]"],
indirect = True,
)

npm_import(
name = "npm__nodelib_fs.stat-2.0.5",
name = "swc_cli__at_nodelib_fs.stat_2.0.5",
integrity = "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
link_package_guard = "swc/private",
package = "@nodelib/fs.stat",
version = "2.0.5",
deps = [],
indirect = True,
)

npm_import(
name = "npm__nodelib_fs.walk-1.2.8",
name = "swc_cli__at_nodelib_fs.walk_1.2.8",
integrity = "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
link_package_guard = "swc/private",
package = "@nodelib/fs.walk",
version = "1.2.8",
deps = ["@npm__nodelib_fs.scandir-2.1.5", "@npm_fastq-1.13.0"],
deps = ["@nodelib/[email protected]", "[email protected]"],
indirect = True,
)

npm_import(
name = "npm__swc_cli-0.1.52",
name = "swc_cli__at_swc_cli_0.1.52",
integrity = "sha512-LAWnsTG6BNGinyPN5U0wPKA6OSMX+sl4VUzzo1dpS33V4osLQOXxLdITQnQbfI8zS74ekERvIwa8vvXKXCoc+A==",
link_package_guard = "swc/private",
package = "@swc/cli",
version = "0.1.52",
deps = ["@npm_commander-7.2.0", "@npm_fast-glob-3.2.7", "@npm_slash-3.0.0", "@npm_source-map-0.7.3"],
deps = ["commander@7.2.0", "fast-glob@3.2.11", "slash@3.0.0", "source-map@0.7.3"],
)

npm_import(
name = "npm_braces-3.0.2",
name = "swc_cli__braces_3.0.2",
integrity = "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
link_package_guard = "swc/private",
package = "braces",
version = "3.0.2",
deps = ["@npm_fill-range-7.0.1"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_commander-7.2.0",
name = "swc_cli__commander_7.2.0",
integrity = "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
link_package_guard = "swc/private",
package = "commander",
version = "7.2.0",
deps = [],
indirect = True,
)

npm_import(
name = "npm_fast-glob-3.2.7",
integrity = "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==",
name = "swc_cli__fast-glob_3.2.11",
integrity = "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
link_package_guard = "swc/private",
package = "fast-glob",
version = "3.2.7",
deps = ["@npm__nodelib_fs.stat-2.0.5", "@npm__nodelib_fs.walk-1.2.8", "@npm_glob-parent-5.1.2", "@npm_merge2-1.4.1", "@npm_micromatch-4.0.4"],
version = "3.2.11",
deps = ["@nodelib/[email protected]", "@nodelib/[email protected]", "[email protected]", "[email protected]", "[email protected]"],
indirect = True,
)

npm_import(
name = "npm_fastq-1.13.0",
name = "swc_cli__fastq_1.13.0",
integrity = "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
link_package_guard = "swc/private",
package = "fastq",
version = "1.13.0",
deps = ["@npm_reusify-1.0.4"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_fill-range-7.0.1",
name = "swc_cli__fill-range_7.0.1",
integrity = "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
link_package_guard = "swc/private",
package = "fill-range",
version = "7.0.1",
deps = ["@npm_to-regex-range-5.0.1"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_glob-parent-5.1.2",
name = "swc_cli__glob-parent_5.1.2",
integrity = "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
link_package_guard = "swc/private",
package = "glob-parent",
version = "5.1.2",
deps = ["@npm_is-glob-4.0.3"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_is-extglob-2.1.1",
name = "swc_cli__is-extglob_2.1.1",
integrity = "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
link_package_guard = "swc/private",
package = "is-extglob",
version = "2.1.1",
deps = [],
indirect = True,
)

npm_import(
name = "npm_is-glob-4.0.3",
name = "swc_cli__is-glob_4.0.3",
integrity = "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
link_package_guard = "swc/private",
package = "is-glob",
version = "4.0.3",
deps = ["@npm_is-extglob-2.1.1"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_is-number-7.0.0",
name = "swc_cli__is-number_7.0.0",
integrity = "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
link_package_guard = "swc/private",
package = "is-number",
version = "7.0.0",
deps = [],
indirect = True,
)

npm_import(
name = "npm_merge2-1.4.1",
name = "swc_cli__merge2_1.4.1",
integrity = "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
link_package_guard = "swc/private",
package = "merge2",
version = "1.4.1",
deps = [],
indirect = True,
)

npm_import(
name = "npm_micromatch-4.0.4",
integrity = "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
name = "swc_cli__micromatch_4.0.5",
integrity = "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
link_package_guard = "swc/private",
package = "micromatch",
version = "4.0.4",
deps = ["@npm_braces-3.0.2", "@npm_picomatch-2.3.0"],
version = "4.0.5",
deps = ["[email protected]", "[email protected]"],
indirect = True,
)

npm_import(
name = "npm_picomatch-2.3.0",
integrity = "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
name = "swc_cli__picomatch_2.3.1",
integrity = "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
link_package_guard = "swc/private",
package = "picomatch",
version = "2.3.0",
deps = [],
version = "2.3.1",
indirect = True,
)

npm_import(
name = "npm_queue-microtask-1.2.3",
name = "swc_cli__queue-microtask_1.2.3",
integrity = "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
link_package_guard = "swc/private",
package = "queue-microtask",
version = "1.2.3",
deps = [],
indirect = True,
)

npm_import(
name = "npm_reusify-1.0.4",
name = "swc_cli__reusify_1.0.4",
integrity = "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
link_package_guard = "swc/private",
package = "reusify",
version = "1.0.4",
deps = [],
indirect = True,
)

npm_import(
name = "npm_run-parallel-1.2.0",
name = "swc_cli__run-parallel_1.2.0",
integrity = "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
link_package_guard = "swc/private",
package = "run-parallel",
version = "1.2.0",
deps = ["@npm_queue-microtask-1.2.3"],
deps = ["[email protected]"],
indirect = True,
)

npm_import(
name = "npm_slash-3.0.0",
name = "swc_cli__slash_3.0.0",
integrity = "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
link_package_guard = "swc/private",
package = "slash",
version = "3.0.0",
deps = [],
indirect = True,
)

npm_import(
name = "npm_source-map-0.7.3",
name = "swc_cli__source-map_0.7.3",
integrity = "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
link_package_guard = "swc/private",
package = "source-map",
version = "0.7.3",
deps = [],
indirect = True,
)

npm_import(
name = "npm_to-regex-range-5.0.1",
name = "swc_cli__to-regex-range_5.0.1",
integrity = "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
link_package_guard = "swc/private",
package = "to-regex-range",
version = "5.0.1",
deps = ["@npm_is-number-7.0.0"],
deps = ["[email protected]"],
indirect = True,
)
Loading

0 comments on commit 2a6a5d2

Please sign in to comment.