config.go (28 lines of code) (raw):
package k6ctl
import (
"context"
"github.com/Azure/k6ctl/internal/config"
configplugin "github.com/Azure/k6ctl/internal/config/plugin"
)
// ConfigProvider - config provider.
type ConfigProvider = config.Provider
// ConfigProviderRegistry - registry of config providers.
type ConfigProviderRegistry = config.ProviderRegistry
// NewConfigProviderRegistry creates a new config provider registry instance.
var NewConfigProviderRegistry = config.NewRegistry
// LoadConfigForStruct loads the given user input map into the given struct and validates it.
func LoadConfigForStruct[T any](
ctx context.Context,
target Target,
userInput map[string]any,
) (T, error) {
return config.LoadForStruct[T](ctx, target, userInput)
}
// ProvideConfig creates a config provider using the loader and resolver functions.
func ProvideConfig[T any](
name string,
// FIXME: generic alias
loader func(ctx context.Context, target Target, userInput map[string]any) (T, error),
resolver func(ctx context.Context, target Target, params T) (string, error),
) ConfigProvider {
return config.Provide[T](
name,
loader,
resolver,
)
}
// ServeConfigRegistryPlugin serves the given config provider registry as a plugin.
var ServeConfigRegistryPlugin = configplugin.ServeRegistry