Skip to content

Commit 81c39da

Browse files
committedMar 28, 2025
build: update ts_project interop to default to rules_js
Instead of exposing the real `rules_js` flavor via the `_rjs` suffix, we now make this the default. This means we still temporarily have a way of accessing the interop layer. That layer is exposed via `_legacy` suffix targets.
1 parent b729846 commit 81c39da

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed
 

Diff for: ‎tools/bazel/legacy_target.bzl

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
def get_legacy_label(label):
2+
if not ":" in label:
3+
label = "%s:%s" % (label, Label(label).name)
4+
return "%s_legacy" % label

Diff for: ‎tools/bazel/ts_project_interop.bzl

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ load("@aspect_rules_js//js:providers.bzl", "JsInfo", "js_info")
22
load("@rules_angular//src/ts_project:index.bzl", _ts_project = "ts_project")
33
load("@build_bazel_rules_nodejs//:providers.bzl", "DeclarationInfo", "JSEcmaScriptModuleInfo", "JSModuleInfo", "LinkablePackageInfo")
44
load("@devinfra//bazel/ts_project:index.bzl", "strict_deps_test")
5+
load("//tools/bazel:legacy_target.bzl", "get_legacy_label")
56

67
def _ts_deps_interop_impl(ctx):
78
types = []
@@ -102,7 +103,6 @@ def ts_project(
102103
name,
103104
module_name = None,
104105
deps = [],
105-
interop_deps = [],
106106
tsconfig = None,
107107
testonly = False,
108108
visibility = None,
@@ -121,23 +121,23 @@ def ts_project(
121121
for d in deps:
122122
if d.startswith("//:node_modules/"):
123123
rjs_modules_to_rnjs.append(d.replace("//:node_modules/", "@npm//"))
124-
if d.endswith("_rjs"):
125-
rjs_modules_to_rnjs.append(d.replace("_rjs", ""))
124+
elif not ":node_modules" in d:
125+
rjs_modules_to_rnjs.append(get_legacy_label(d))
126126

127127
ts_deps_interop(
128128
name = "%s_interop_deps" % name,
129-
deps = [] + interop_deps + rjs_modules_to_rnjs,
129+
deps = [] + rjs_modules_to_rnjs,
130130
visibility = visibility,
131131
testonly = testonly,
132132
)
133133

134134
rule_impl(
135-
name = "%s_rjs" % name,
135+
name = name,
136136
testonly = testonly,
137137
declaration = True,
138138
tsconfig = tsconfig,
139139
visibility = visibility,
140-
deps = [":%s_interop_deps" % name] + deps,
140+
deps = deps,
141141
**kwargs
142142
)
143143

@@ -149,13 +149,13 @@ def ts_project(
149149
)
150150

151151
ts_project_module(
152-
name = name,
152+
name = "%s_legacy" % name,
153153
testonly = testonly,
154154
visibility = visibility,
155-
dep = "%s_rjs" % name,
155+
dep = name,
156156
# Forwarded dependencies for linker module mapping aspect.
157157
# RJS deps can also transitively pull in module mappings from their `interop_deps`.
158-
deps = [] + ["%s_interop_deps" % name] + deps,
158+
deps = [":%s_interop_deps" % name] + deps,
159159
module_name = module_name,
160160
)
161161

0 commit comments

Comments
 (0)