n/a
PiperOrigin-RevId: 285262975
diff --git a/internal/common/compilation.bzl b/internal/common/compilation.bzl
index e815f37..1c267b1 100644
--- a/internal/common/compilation.bzl
+++ b/internal/common/compilation.bzl
@@ -516,10 +516,23 @@
},
}
-# Converts a dict to a struct, recursing into a single level of nested dicts.
-# This allows users of compile_ts to modify or augment the returned dict before
-# converting it to an immutable struct.
-def ts_providers_dict_to_struct(d):
+def ts_providers_dict_to_struct(d, preserve_js_struct_field = False):
+ """ Converts a dict to a struct, recursing into a single level of nested dicts.
+
+ This allows users of compile_ts to modify or augment the returned dict before
+ converting it to an immutable struct.
+
+ Args:
+ d: the dict to convert
+ preserve_js_struct_field: whether to preserve the js provider as a "js" field.
+ Please only set this to True if you are using this struct in another provider.
+ e.g. MyProvider(some_field = ts_providers_dict_to_struct(d, preserve_js_struct_field = True))
+ *Do not use* if returning the struct from a rule.
+
+ Returns:
+ An immutable struct created from the input dict
+ """
+
for key, value in d.items():
if key != "output_groups" and type(value) == type({}):