@@ -320,12 +320,16 @@ pub fn shopify_function_target(
320320 . schema_path
321321 . expect ( "No value given for schema_path" )
322322 . value ( ) ;
323- let extern_enums = args. extern_enums . as_ref ( ) . map ( extract_extern_enums) ;
323+ let extern_enums = args
324+ . extern_enums
325+ . as_ref ( )
326+ . map ( extract_extern_enums)
327+ . unwrap_or_else ( default_exter_enums) ;
324328
325329 let input_struct = generate_input_struct (
326330 query_path. as_str ( ) ,
327331 schema_path. as_str ( ) ,
328- extern_enums. as_deref ( ) ,
332+ extern_enums. as_slice ( ) ,
329333 ) ;
330334
331335 if let Err ( error) = extract_shopify_function_return_type ( & ast) {
@@ -341,7 +345,7 @@ pub fn shopify_function_target(
341345 & target_handle_string. to_case( Case :: Camel )
342346 ) ;
343347 let output_struct =
344- generate_output_struct ( & output_query, schema_path. as_str ( ) , extern_enums. as_deref ( ) ) ;
348+ generate_output_struct ( & output_query, schema_path. as_str ( ) , extern_enums. as_slice ( ) ) ;
345349
346350 if let Err ( error) = extract_shopify_function_return_type ( & ast) {
347351 return error. to_compile_error ( ) . into ( ) ;
@@ -411,15 +415,20 @@ pub fn generate_types(attr: proc_macro::TokenStream) -> proc_macro::TokenStream
411415 . schema_path
412416 . expect ( "No value given for schema_path" )
413417 . value ( ) ;
414- let extern_enums = args. extern_enums . as_ref ( ) . map ( extract_extern_enums) ;
418+ let extern_enums = args
419+ . extern_enums
420+ . as_ref ( )
421+ . map ( extract_extern_enums)
422+ . unwrap_or_else ( default_exter_enums) ;
423+
415424 let input_struct = generate_input_struct (
416425 query_path. as_str ( ) ,
417426 schema_path. as_str ( ) ,
418- extern_enums. as_deref ( ) ,
427+ extern_enums. as_slice ( ) ,
419428 ) ;
420429 let output_query =
421430 "mutation Output($result: FunctionResult!) {\n handleResult(result: $result)\n }\n " ;
422- let output_struct = generate_output_struct ( output_query, & schema_path, extern_enums. as_deref ( ) ) ;
431+ let output_struct = generate_output_struct ( output_query, & schema_path, extern_enums. as_slice ( ) ) ;
423432
424433 quote ! {
425434 #input_struct
@@ -433,12 +442,8 @@ const DEFAULT_EXTERN_ENUMS: &[&str] = &["LanguageCode", "CountryCode", "Currency
433442fn generate_input_struct (
434443 query_path : & str ,
435444 schema_path : & str ,
436- extern_enums : Option < & [ String ] > ,
445+ extern_enums : & [ String ] ,
437446) -> TokenStream {
438- let extern_enums = extern_enums
439- . map ( |e| e. to_owned ( ) )
440- . unwrap_or_else ( || DEFAULT_EXTERN_ENUMS . iter ( ) . map ( |e| e. to_string ( ) ) . collect ( ) ) ;
441-
442447 quote ! {
443448 #[ derive( graphql_client:: GraphQLQuery , Clone , Debug , serde:: Deserialize , PartialEq ) ]
444449 #[ graphql(
@@ -455,7 +460,7 @@ fn generate_input_struct(
455460
456461fn graphql_codegen_options (
457462 operation_name : String ,
458- extern_enums : Option < & [ String ] > ,
463+ extern_enums : & [ String ] ,
459464) -> GraphQLClientCodegenOptions {
460465 let mut options = GraphQLClientCodegenOptions :: new ( CodegenMode :: Derive ) ;
461466 options. set_operation_name ( operation_name) ;
@@ -468,17 +473,15 @@ fn graphql_codegen_options(
468473 }
469474 . into ( ) ,
470475 ) ;
471- if let Some ( extern_enums) = extern_enums {
472- options. set_extern_enums ( extern_enums. to_vec ( ) ) ;
473- }
476+ options. set_extern_enums ( extern_enums. to_vec ( ) ) ;
474477
475478 options
476479}
477480
478481fn generate_output_struct (
479482 query : & str ,
480483 schema_path : & str ,
481- extern_enums : Option < & [ String ] > ,
484+ extern_enums : & [ String ] ,
482485) -> proc_macro2:: TokenStream {
483486 let options = graphql_codegen_options ( "Output" . to_string ( ) , extern_enums) ;
484487 let cargo_manifest_dir =
@@ -511,6 +514,10 @@ fn extract_extern_enums(extern_enums: &ExprArray) -> Vec<String> {
511514 . collect ( )
512515}
513516
517+ fn default_exter_enums ( ) -> Vec < String > {
518+ DEFAULT_EXTERN_ENUMS . iter ( ) . map ( |e| e. to_string ( ) ) . collect ( )
519+ }
520+
514521#[ cfg( test) ]
515522mod tests { }
516523
0 commit comments