@@ -4,7 +4,9 @@ use crate::app::build::up_to_date_check::new_task_up_to_date_check;
44use crate :: app:: context:: BuildContext ;
55use crate :: bridge_gen:: rust:: RustBridgeGenerator ;
66use crate :: bridge_gen:: typescript:: TypeScriptBridgeGenerator ;
7- use crate :: bridge_gen:: { BridgeGenerator , bridge_client_directory_name} ;
7+ use crate :: bridge_gen:: {
8+ BridgeGenerator , BridgeGeneratorConfig , DeriveRule , bridge_client_directory_name,
9+ } ;
810use crate :: command:: GolemCliCommand ;
911use crate :: error:: NonSuccessfulExit ;
1012use crate :: fs;
@@ -103,6 +105,19 @@ async fn collect_manifest_targets(ctx: &BuildContext<'_>) -> anyhow::Result<Vec<
103105 agent_type,
104106 target_language,
105107 output_dir,
108+ derive_rules : sdks_targets
109+ . additional_derives
110+ . as_ref ( )
111+ . map ( |rules| {
112+ rules
113+ . iter ( )
114+ . map ( |r| DeriveRule {
115+ pattern : r. pattern . clone ( ) ,
116+ derives : r. derives . clone ( ) ,
117+ } )
118+ . collect ( )
119+ } )
120+ . unwrap_or_default ( ) ,
106121 } ) ;
107122 }
108123 }
@@ -173,6 +188,7 @@ async fn collect_custom_targets(
173188 agent_type,
174189 target_language,
175190 output_dir,
191+ derive_rules : custom_target. derive_rules . clone ( ) ,
176192 } ) ;
177193 }
178194 }
@@ -222,17 +238,24 @@ async fn gen_bridge_sdk_target(
222238 ) ;
223239 let _indent = LogIndent :: new ( ) ;
224240
241+ let config = BridgeGeneratorConfig {
242+ derive_rules : target. derive_rules ,
243+ } ;
225244 let mut generator: Box < dyn BridgeGenerator > = match target. target_language {
226245 GuestLanguage :: Rust => Box :: new ( RustBridgeGenerator :: new (
227246 target. agent_type ,
228247 & output_dir,
229248 false ,
249+ config,
230250 ) ?) ,
231- GuestLanguage :: TypeScript => Box :: new ( TypeScriptBridgeGenerator :: new (
232- target. agent_type ,
233- & output_dir,
234- false ,
235- ) ?) ,
251+ GuestLanguage :: TypeScript => {
252+ Box :: new ( <TypeScriptBridgeGenerator as BridgeGenerator >:: new (
253+ target. agent_type ,
254+ & output_dir,
255+ false ,
256+ config,
257+ ) ?)
258+ }
236259 GuestLanguage :: Scala => {
237260 bail ! ( "Bridge generation is not yet supported for Scala" )
238261 }
0 commit comments