From 175a0fae50f3ff96f4f6f96fc2434fbd6757fb16 Mon Sep 17 00:00:00 2001 From: Greg Magolan Date: Fri, 19 Apr 2024 08:19:14 -0700 Subject: [PATCH] refactor: don't gather files from NpmPackageStoreInfo providers in gather_files_from_js_info --- js/private/js_helpers.bzl | 12 +++--------- npm/private/npm_package_store.bzl | 11 ++++++++--- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/js/private/js_helpers.bzl b/js/private/js_helpers.bzl index 2b7fd3d25..c3ea40fcc 100644 --- a/js/private/js_helpers.bzl +++ b/js/private/js_helpers.bzl @@ -2,7 +2,6 @@ """ load("@aspect_bazel_lib//lib:copy_to_bin.bzl", "copy_file_to_bin_action") -load("//npm:providers.bzl", "NpmPackageStoreInfo") load(":js_info.bzl", "JsInfo") def gather_transitive_sources(sources, targets): @@ -131,8 +130,8 @@ def gather_runfiles( """Creates a runfiles object containing files in `sources`, default outputs from `data` and transitive runfiles from `data` & `deps`. As a defense in depth against `data` & `deps` targets not supplying all required runfiles, also - gathers the transitive sources & transitive npm sources from the `JsInfo` & - `NpmPackageStoreInfo` providers of `data` & `deps` targets. + gathers the transitive sources & transitive npm sources from the `JsInfo` providers of + `data` & `deps` targets. See https://bazel.build/extending/rules#runfiles for more info on providing runfiles in build rules. @@ -259,7 +258,7 @@ def gather_files_from_js_info( include_transitive_sources, include_transitive_types, include_npm_sources): - """Gathers files from JsInfo and NpmPackageStoreInfo providers. + """Gathers files from JsInfo providers. Args: targets: list of target to gather from @@ -303,9 +302,4 @@ def gather_files_from_js_info( for target in targets if JsInfo in target and hasattr(target[JsInfo], "npm_sources") ]) - files_depsets.extend([ - target[NpmPackageStoreInfo].transitive_files - for target in targets - if NpmPackageStoreInfo in target and hasattr(target[NpmPackageStoreInfo], "transitive_files") - ]) return depset([], transitive = files_depsets) diff --git a/npm/private/npm_package_store.bzl b/npm/private/npm_package_store.bzl index 9a0957e3a..a10c35119 100644 --- a/npm/private/npm_package_store.bzl +++ b/npm/private/npm_package_store.bzl @@ -4,7 +4,7 @@ load("@aspect_bazel_lib//lib:copy_directory.bzl", "copy_directory_bin_action") load("@bazel_skylib//lib:paths.bzl", "paths") # buildifier: disable=bzl-visibility -load("//js/private:js_info.bzl", "JsInfo") +load("//js/private:js_info.bzl", "JsInfo", "js_info") load(":npm_package_info.bzl", "NpmPackageInfo") load(":npm_package_store_info.bzl", "NpmPackageStoreInfo") load(":utils.bzl", "utils") @@ -340,8 +340,6 @@ deps of npm_package_store must be in the same package.""" % (ctx.label.package, for target in ctx.attr.deps ]) - files_depset = depset(files) - for transitive_package_store_infos_depset in transitive_package_store_infos_depsets: for npm_package_store_info in transitive_package_store_infos_depset.to_list(): npm_package_store_infos.append(npm_package_store_info) @@ -364,9 +362,16 @@ deps of npm_package_store must be in the same package.""" % (ctx.label.package, for npm_package_store_info in npm_package_store_infos ]) + files_depset = depset(files) + providers = [ + js_info( + target = ctx.label, + npm_sources = transitive_files_depset, + ), DefaultInfo( files = files_depset, + runfiles = ctx.runfiles(transitive_files = transitive_files_depset), ), NpmPackageStoreInfo( root_package = ctx.label.package,