provider

package
v1.0.12-rc-1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 10, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package provider implements a service-provider registry for extending the application with pluggable, configurable components.

Providers are registered globally, sorted by priority, then configured, registered, and booted in two passes when loaded into an application. Providers may opt into configuration, custom priority, or optional booting.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterGlobalProvider

func RegisterGlobalProvider(provider ServiceProvider)

RegisterGlobalProvider adds a provider to the global registry

Types

type ConfigurableProvider

type ConfigurableProvider interface {
	ServiceProvider
	Configure(config map[string]interface{}) error
}

ConfigurableProvider allows providers to accept configuration

type OptionalProvider

type OptionalProvider interface {
	ServiceProvider
	IsOptional() bool
}

OptionalProvider allows providers to specify if they're optional

type PriorityProvider

type PriorityProvider interface {
	ServiceProvider
	Priority() int
}

PriorityProvider allows providers to specify boot order

type Provider

type Provider struct {
	//App              *adele.Adele
	EnabledProviders map[string]bool
	ProviderConfigs  map[string]map[string]interface{}
}

Provider manages the loading and bootstrapping of service providers

func (*Provider) GetProviderConfig

func (p *Provider) GetProviderConfig(name string) map[string]interface{}

GetProviderConfig returns configuration for a specific provider

func (*Provider) IsProviderEnabled

func (p *Provider) IsProviderEnabled(name string) bool

IsProviderEnabled checks if a provider is enabled in configuration

func (*Provider) LoadProviders

func (p *Provider) LoadProviders(app interface{}) error

LoadProviders discovers and loads all registered providers into the application

func (*Provider) SetProviderConfig

func (p *Provider) SetProviderConfig(name string, config map[string]interface{})

SetProviderConfig sets configuration for a provider

func (*Provider) SetProviderEnabled

func (p *Provider) SetProviderEnabled(name string, enabled bool)

SetProviderEnabled enables or disables a provider

type ServiceProvider

type ServiceProvider interface {
	Register(app interface{}) error
	Boot(app interface{}) error
	Name() string
}

ServiceProvider is the expected interface every provider must implement

func GetRegisteredProviders

func GetRegisteredProviders() []ServiceProvider

GetRegisteredProviders returns a copy of all registered providers

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL