Require deps of ts_library to provide DeclarationInfo
PiperOrigin-RevId: 291040689
diff --git a/internal/common/compilation.bzl b/internal/common/compilation.bzl
index 514202a..a514e9e 100644
--- a/internal/common/compilation.bzl
+++ b/internal/common/compilation.bzl
@@ -57,10 +57,7 @@
),
"deps": attr.label_list(
aspects = DEPS_ASPECTS,
- # TODO(b/139705078): require all deps have a DeclarationInfo provider
- # and remove assert_js_or_typescript_deps which is attempting
- # to enforce the same thing as this.
- # providers = [DeclarationInfo],
+ providers = [DeclarationInfo],
),
"_additional_d_ts": _ADDITIONAL_D_TS,
}
@@ -75,17 +72,6 @@
"tsconfig": "%{name}_tsconfig.json",
}
-# TODO(plf): Enforce this at analysis time.
-def assert_js_or_typescript_deps(ctx, deps = None):
- # `deps` args is optinal for backward compat.
- # Fallback to `ctx.attr.deps`.
- deps = deps if deps != None else ctx.attr.deps
- for dep in deps:
- if not hasattr(dep, "typescript") and not JsInfo in dep and not DeclarationInfo in dep:
- allowed_deps_msg = "Dependencies must be ts_library"
-
- fail("%s is neither a TypeScript nor a JS producing rule.\n%s\n" % (dep.label, allowed_deps_msg))
-
_DEPSET_TYPE = type(depset())
def _collect_dep_declarations(ctx, declaration_infos):
@@ -227,16 +213,10 @@
if not hasattr(ctx.attr, "deps"):
fail("compile_ts must either be called from a rule with a deps attr, or must be given declaration_infos")
- # Validate the user inputs.
- # TODO(b/139705078): remove this when we require DeclarationInfo provider on deps
- assert_js_or_typescript_deps(ctx, ctx.attr.deps)
-
# By default, we collect dependencies from the ctx, when used as a rule
declaration_infos = [
d[DeclarationInfo]
for d in ctx.attr.deps + getattr(ctx.attr, "_helpers", [])
- # TODO(b/139705078): remove this when we require DeclarationInfo provider on deps
- if DeclarationInfo in d
]
tsconfig = tsconfig if tsconfig != None else ctx.outputs.tsconfig