Raxol.Core.Runtime.Plugins.DependencyManager.Behaviour behaviour (Raxol v0.5.0)
View SourceDefines the behaviour for plugin dependency management.
This behaviour is responsible for:
- Checking plugin dependencies
- Resolving dependency conflicts
- Managing dependency versions
- Handling circular dependencies
Summary
Callbacks
Checks for circular dependencies in the plugin graph.
Checks if a plugin's dependencies are satisfied.
Resolves dependencies between plugins.
Validates a plugin's dependency specifications.
Callbacks
@callback check_circular_dependencies( plugin_id :: String.t(), dependencies :: [{atom(), String.t()}], loaded_plugins :: map() ) :: :ok | {:error, any()}
Checks for circular dependencies in the plugin graph.
@callback check_dependencies( plugin_id :: String.t(), plugin_metadata :: map(), loaded_plugins :: map() ) :: :ok | {:error, any()}
Checks if a plugin's dependencies are satisfied.
@callback resolve_dependencies( plugin_metadata :: map(), loaded_plugins :: map() ) :: {:ok, [String.t()]} | {:error, any()}
Resolves dependencies between plugins.
Validates a plugin's dependency specifications.