blob: 9db35b3d40785b6347f52b10d8a89ac54dfc67aa [file] [log] [blame]
--- a/internal/npm_install/node_module_library.bzl
+++ b/internal/npm_install/node_module_library.bzl
@@ -29,14 +29,20 @@ def _node_module_library_impl(ctx):
# use in rules such as ts_devserver
scripts = depset(ctx.files.scripts)
- # declarations are a subset of sources that are decleration files
- declarations = depset([f for f in ctx.files.srcs if f.path.endswith(".d.ts")])
+ # declarations are a subset of sources that are declaration files
+
+ declarations = depset([
+ f
+ for f in ctx.files.srcs
+ if f.path.endswith(".d.ts") and
+ # exclude eg. external/npm/node_modules/protobufjs/node_modules/@types/node/index.d.ts
+ # these would be duplicates of the typings provided directly in another dependency
+ len(f.path.split("/node_modules/")) < 3
+ ])
+
+ # transitive_declarations are all .d.ts files in srcs plus those in direct & transitive dependencies
+ transitive_declarations = depset(transitive = [declarations])
- # transitive_declarations are all direct & transitive decleration files
- transitive_declarations = depset()
- for src in ctx.attr.srcs:
- if hasattr(src, "typescript"):
- transitive_declarations = depset(transitive = [transitive_declarations, src.typescript.transitive_declarations])
for dep in ctx.attr.deps:
if hasattr(dep, "typescript"):
transitive_declarations = depset(transitive = [transitive_declarations, dep.typescript.transitive_declarations])