Skip to content

Commit 6a05481

Browse files
authored
fix: add missing ts_version_from to bzlmod API (#378)
1 parent a356a2c commit 6a05481

File tree

4 files changed

+26
-4
lines changed

4 files changed

+26
-4
lines changed

MODULE.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,10 @@ bazel_dep(name = "bazel_skylib", version = "1.4.1")
1010
bazel_dep(name = "rules_nodejs", version = "5.8.2", dev_dependency = True)
1111
bazel_dep(name = "aspect_rules_js", version = "1.23.1")
1212
bazel_dep(name = "aspect_bazel_lib", version = "1.29.2")
13+
14+
rules_ts_ext = use_extension(
15+
"@aspect_rules_ts//ts:extensions.bzl",
16+
"ext",
17+
dev_dependency = True,
18+
)
19+
rules_ts_ext.deps(ts_version_from = "//examples:package.json")

e2e/bzlmod/MODULE.bazel

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ rules_ts_ext = use_extension(
2020
dev_dependency = True,
2121
)
2222

23-
rules_ts_ext.deps()
23+
rules_ts_ext.deps(
24+
# This keeps the TypeScript version in-sync with the editor, which is typically best.
25+
ts_version_from = "//:package.json",
26+
)
2427

25-
use_repo(rules_ts_ext, "npm_typescript")
28+
use_repo(rules_ts_ext, "npm_typescript")

e2e/bzlmod/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"devDependencies": {
3+
"typescript": "4.8.4"
4+
}
5+
}

ts/extensions.bzl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,18 @@ load("//ts:repositories.bzl", "LATEST_TYPESCRIPT_VERSION")
88
def _extension_impl(module_ctx):
99
for mod in module_ctx.modules:
1010
for attr in mod.tags.deps:
11-
npm_dependencies(ts_version = attr.ts_version, ts_integrity = attr.ts_integrity)
11+
ts_version = attr.ts_version
12+
if not ts_version and not attr.ts_version_from:
13+
ts_version = LATEST_TYPESCRIPT_VERSION
14+
npm_dependencies(ts_version = ts_version, ts_version_from = attr.ts_version_from, ts_integrity = attr.ts_integrity)
1215

1316
ext = module_extension(
1417
implementation = _extension_impl,
1518
tag_classes = {
16-
"deps": tag_class(attrs = {"ts_version": attr.string(default = LATEST_TYPESCRIPT_VERSION), "ts_integrity": attr.string()}),
19+
"deps": tag_class(attrs = {
20+
"ts_version": attr.string(),
21+
"ts_version_from": attr.label(),
22+
"ts_integrity": attr.string(),
23+
}),
1724
},
1825
)

0 commit comments

Comments
 (0)