From 13fcfdeca4e74a86cb70b1360b494424dd9d46ce Mon Sep 17 00:00:00 2001 From: Miles Georgi Date: Fri, 12 Apr 2024 18:36:53 -0500 Subject: [PATCH] Import all types a type depends on --- src/foobara/remote_imports/import_type.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/foobara/remote_imports/import_type.rb b/src/foobara/remote_imports/import_type.rb index 5d9e3e0..9dd1bbe 100644 --- a/src/foobara/remote_imports/import_type.rb +++ b/src/foobara/remote_imports/import_type.rb @@ -3,7 +3,7 @@ module RemoteImports class ImportType < Command include ImportBase - depends_on ImportDomain + depends_on ImportDomain, ImportType def find_manifests_to_import root_manifest.types @@ -17,6 +17,15 @@ def import_object_from_manifest return if existing_type + manifest_to_import.types_depended_on.each do |depended_on_type| + run_subcommand!( + ImportType, + raw_manifest: manifest_data, + to_import: depended_on_type.reference, + already_imported: + ) + end + domain_manifest = manifest_to_import.domain run_subcommand!( @@ -31,7 +40,8 @@ def import_object_from_manifest mode: Namespace::LookupMode::ABSOLUTE ) - domain.foobara_register_type(manifest_to_import.scoped_short_name, manifest_to_import.declaration_data) + domain.foobara_register_type(manifest_to_import.scoped_short_name, + manifest_to_import.declaration_data) end end end