AshDyan.Extension.Loader (AshDyan v0.6.0)

Copy Markdown View Source

Loads and merges configurations from all registered AshDyan extensions.

Extensions are registered via config :ash_dyan, :extensions, [MyExtension].

Summary

Functions

Get the base configuration (without extensions).

Load all extensions and return merged configuration.

Force a recompute of the merged configuration (e.g. after changing app env in tests).

Functions

base_config()

@spec base_config() :: map()

Get the base configuration (without extensions).

load()

@spec load() :: %{
  analysis_types: %{required(atom()) => module()},
  data_layer_capabilities: %{required(module()) => module()},
  custom_aggregates: %{required(atom()) => module()},
  hooks: %{
    before_query: [module()],
    after_query: [module()],
    before_format: [module()],
    after_format: [module()]
  },
  dsl_entities: [module()]
}

Load all extensions and return merged configuration.

reload()

@spec reload() :: map()

Force a recompute of the merged configuration (e.g. after changing app env in tests).