Versions in this module Expand all Collapse all v0 v0.25.3 Nov 1, 2026 Changes in this version + var ContextHelper = ContextKeyHelper + var DefaultConfigNames = []string + var DefaultEnvPrefixes = map[EnvironmentType][]string + var DefaultSupportedExtensions = []string + var ErrCallbackFuncNil = errors.New("回调函数不能为空") + var ErrCallbackIDEmpty = errors.New("回调ID不能为空") + var ErrConfigEmpty = errors.New("配置为空") + var ErrManagerNotRunning = errors.New("集成配置管理器未运行") + var ErrManagerRunning = errors.New("集成配置管理器已在运行") + var ErrNoConfigCandidate = errors.New("未找到任何配置文件候选") + var ErrNoConfigPath = errors.New("未指定配置路径或搜索选项") + var ErrReloaderNotRunning = errors.New("热更新器未运行") + var ErrReloaderRunning = errors.New("热更新器已经在运行") + func ClearGlobalContextManager() + func ErrAddWatcher(err error) error + func ErrAutoDiscoverConfigFiles(err error) error + func ErrBreakerHalfOpenSuccessesInvalid(taskName string) error + func ErrBreakerMaxFailuresInvalid(taskName string) error + func ErrBreakerResetTimeoutInvalid(taskName string) error + func ErrCallbackIDExists(id string) error + func ErrCallbackIDNotFound(id string) error + func ErrConfigFileNotFound(suggestedPath string) error + func ErrConfigTypeMismatch(expected, actual any) error + func ErrCreateDir(err error) error + func ErrCreateHotReloader(err error) error + func ErrCreateManager(err error) error + func ErrCreateOutputDir(err error) error + func ErrCreateWatcher(err error) error + func ErrCronSpecEmpty(taskName string) error + func ErrDiscoverConfigFiles(err error) error + func ErrEnvTypeRegistered(env EnvironmentType) error + func ErrEnvVarNotSet(key string) error + func ErrFindConfigByPattern(err error) error + func ErrGenerateDefaultConfig(err error) error + func ErrGenerateJSON(err error) error + func ErrGenerateYAML(err error) error + func ErrGetAbsPath(err error) error + func ErrInvalidTimezone(timezone string, err error) error + func ErrMarshalJSON(err error) error + func ErrMarshalYAML(err error) error + func ErrMaxConcurrentInvalid(taskName string) error + func ErrModuleConfigEmpty(moduleName string) error + func ErrModuleConfigSerializeFailed(moduleName string, err error) error + func ErrModuleDefaultFuncNil(moduleName string) error + func ErrModuleNotFound(moduleName string) error + func ErrModuleValidationFailed(failedModules []string) error + func ErrModulesValidationFailed(modules string) error + func ErrNoMatchingConfig(pattern string) error + func ErrPartialModuleFailed(successCount, failCount int) error + func ErrPriorityOutOfRange(taskName string) error + func ErrReadConfigFile(err error) error + func ErrResolveConfigPath(err error) error + func ErrScanDir(err error) error + func ErrSearchPathNotExist(path string) error + func ErrStartHotReloader(err error) error + func ErrStartManager(err error) error + func ErrStopHotReloader(err error) error + func ErrTimeoutInvalid(taskName string) error + func ErrUnmarshalConfig(err error) error + func ErrUnsupportedFormat(extension string) error + func ErrWriteConfigFile(err error) error + func ErrWriteJSON(err error) error + func ErrWriteYAML(err error) error + func FlexibleMatchName(mapKey, fieldName string) bool + func GetConfigAs[T any](icm *IntegratedConfigManager) (*T, error) + func GetConfigFromContext(ctx context.Context) (any, bool) + func GetCurrentEnvironmentLevel() int + func GetEnvPrefixes(env EnvironmentType) []string + func GetEnvironmentLevel(env EnvironmentType) int + func GetMetadataFromContext(ctx context.Context) (map[string]any, bool) + func IsAnyOf(envs ...EnvironmentType) bool + func IsDebug() bool + func IsDemo() bool + func IsDev() bool + func IsDevelopmentLevel() bool + func IsEnvironment(env EnvironmentType) bool + func IsIntegration() bool + func IsLocal() bool + func IsProduction() bool + func IsProductionLevel() bool + func IsStaging() bool + func IsTest() bool + func IsTestingLevel() bool + func IsUAT() bool + func ListAllEnvPrefixes() map[EnvironmentType][]string + func MustGetConfigAs[T any](icm *IntegratedConfigManager) *T + func RegisterEnvPrefixes(env EnvironmentType, prefixes ...string) + func SetContextKey(options *ContextKeyOptions) + func SetCurrentEnvironment(env EnvironmentType) + func SetGlobalBuilderFactory(factory *BuilderFactory) + func UnmarshalWithFlexibleNaming(v *viper.Viper, target interface{}) error + func UnmarshalWithKebabToSnake(v *viper.Viper, target interface{}) error + func WithGlobalConfig(ctx context.Context) context.Context + type BuilderFactory struct + func GetGlobalBuilderFactory() *BuilderFactory + func NewBuilderFactory() *BuilderFactory + func (f *BuilderFactory) SetDefaults(options ConfigBuilderOptions) *BuilderFactory + type CallbackEvent struct + ConfigPath string + Duration time.Duration + Environment EnvironmentType + Error error + Metadata map[string]interface{} + NewValue interface{} + OldValue interface{} + Source string + Timestamp time.Time + Type CallbackType + func CreateErrorEvent(source string, err error) CallbackEvent + func CreateEvent(eventType CallbackType, source string, oldValue, newValue interface{}) CallbackEvent + func (e *CallbackEvent) GetMetadata(key string) (interface{}, bool) + func (e *CallbackEvent) WithMetadata(key string, value interface{}) *CallbackEvent + type CallbackFunc func(ctx context.Context, event CallbackEvent) error + type CallbackManager interface + ClearCallbacks func() + HasCallback func(id string) bool + ListCallbacks func() []string + RegisterCallback func(callback CallbackFunc, options CallbackOptions) error + TriggerCallbacks func(ctx context.Context, event CallbackEvent) error + UnregisterCallback func(id string) error + func NewCallbackManager() CallbackManager + type CallbackOptions struct + Async bool + Filter func(CallbackEvent) bool + ID string + Priority int + Retry int + Timeout time.Duration + Types []CallbackType + func DefaultCallbackOptions() CallbackOptions + type CallbackType string + const CallbackTypeConfigChanged + const CallbackTypeEnvVarChanged + const CallbackTypeEnvironment + const CallbackTypeError + const CallbackTypeFileChanged + const CallbackTypeReloaded + const CallbackTypeStarted + const CallbackTypeStopped + const CallbackTypeValidation + type CommonCallbackManager struct + func (cm *CommonCallbackManager) ClearCallbacks() + func (cm *CommonCallbackManager) GetCallbackCount() int + func (cm *CommonCallbackManager) GetCallbackInfo(id string) (CallbackOptions, bool) + func (cm *CommonCallbackManager) HasCallback(id string) bool + func (cm *CommonCallbackManager) ListCallbacks() []string + func (cm *CommonCallbackManager) RegisterCallback(callback CallbackFunc, options CallbackOptions) error + func (cm *CommonCallbackManager) TriggerCallbacks(ctx context.Context, event CallbackEvent) error + func (cm *CommonCallbackManager) UnregisterCallback(id string) error + type ConfigBuilder interface + Build func() (*IntegratedConfigManager, error) + BuildAndStart func(ctx ...context.Context) (*IntegratedConfigManager, error) + MustBuildAndStart func(ctx ...context.Context) *IntegratedConfigManager + WithConfigPath func(path string) ConfigBuilder[T] + WithContext func(options *ContextKeyOptions) ConfigBuilder[T] + WithEnvironment func(env EnvironmentType) ConfigBuilder[T] + WithHotReload func(config *HotReloadConfig) ConfigBuilder[T] + WithPattern func(pattern string) ConfigBuilder[T] + WithPrefix func(prefix string) ConfigBuilder[T] + WithSearchPath func(path string) ConfigBuilder[T] + func NewConfigBuilder[T any](config *T) ConfigBuilder[T] + func NewManager[T any](config *T) ConfigBuilder[T] + type ConfigBuilderOptions struct + ConfigPath string + ConfigPrefix string + ContextOptions *ContextKeyOptions + Environment EnvironmentType + HotReloadConfig *HotReloadConfig + Pattern string + SearchPath string + type ConfigContext struct + Config any + CreatedAt time.Time + Environment EnvironmentType + Metadata map[string]any + UpdatedAt time.Time + type ConfigDiscovery struct + DefaultNames []string + EnvPrefixes map[EnvironmentType][]string + SupportedExtensions []string + func GetGlobalConfigDiscovery() *ConfigDiscovery + func NewConfigDiscovery() *ConfigDiscovery + func (cd *ConfigDiscovery) DiscoverConfigFiles(searchPath string, env EnvironmentType) ([]*ConfigFileInfo, error) + func (cd *ConfigDiscovery) FindBestConfigFile(searchPath string, env EnvironmentType) (*ConfigFileInfo, error) + func (cd *ConfigDiscovery) FindConfigFileByPattern(searchPath, pattern string, env EnvironmentType) ([]*ConfigFileInfo, error) + func (cd *ConfigDiscovery) ScanDirectory(searchPath string) ([]*ConfigFileInfo, error) + type ConfigFileInfo struct + BaseName string + Environment EnvironmentType + Exists bool + Extension string + Name string + Path string + Priority int + func DiscoverConfig(searchPath string, env EnvironmentType) ([]*ConfigFileInfo, error) + func FindBestConfig(searchPath string, env EnvironmentType) (*ConfigFileInfo, error) + func ScanAndDisplayConfigs(searchPath string, env EnvironmentType) ([]*ConfigFileInfo, error) + type ConfigFormatter struct + func NewConfigFormatter(lg ...*logger.Logger) *ConfigFormatter + func (cf *ConfigFormatter) LogConfigChanged(event CallbackEvent, newConfig any) + type ContextKey string + const ContextKeyConfig + const ContextKeyEnvironment + const ContextKeyHotReloader + const ContextKeyMetadata + func GetContextKey() ContextKey + func (c ContextKey) String() string + type ContextKeyHelper struct + func (ContextKeyHelper) IsEnvironment(ctx context.Context, env EnvironmentType) bool + func (ContextKeyHelper) MustGetConfig(ctx context.Context) any + func (ContextKeyHelper) MustGetEnvironment(ctx context.Context) EnvironmentType + func (ContextKeyHelper) NewConfigContext() context.Context + func (ContextKeyHelper) NewContextWithDeadline(deadline time.Time) (context.Context, context.CancelFunc) + func (ContextKeyHelper) NewContextWithTimeout(timeout time.Duration) (context.Context, context.CancelFunc) + type ContextKeyOptions struct + Key ContextKey + Value EnvironmentType + type ContextManager struct + func GetGlobalContextManager() *ContextManager + func InitializeContextManager(env *Environment, reloader HotReloader) *ContextManager + func NewContextManager(env *Environment, reloader HotReloader) *ContextManager + func (cm *ContextManager) GetConfigContext() *ConfigContext + func (cm *ContextManager) GetCurrentConfig() any + func (cm *ContextManager) GetCurrentEnvironment() EnvironmentType + func (cm *ContextManager) GetMetadata(key string) (any, bool) + func (cm *ContextManager) SetMetadata(key string, value any) + func (cm *ContextManager) UpdateConfig(config any) + func (cm *ContextManager) WithConfig(ctx context.Context) context.Context + type Environment struct + CheckFrequency time.Duration + Value EnvironmentType + func Default() *Environment + func DefaultEnvironment() Environment + func GetGlobalEnvironment() *Environment + func NewEnvironment() *Environment + func (e *Environment) CheckAndUpdateEnv() + func (e *Environment) ClearCallbacks() + func (e *Environment) ClearEnv() + func (e *Environment) ListCallbacks() []string + func (e *Environment) RegisterCallback(id string, callback EnvironmentCallback, priority int, async bool) error + func (e *Environment) RegisterEnvironment(env EnvironmentType) error + func (e *Environment) SetCheckFrequency(frequency time.Duration) *Environment + func (e *Environment) SetEnvironment(value EnvironmentType) *Environment + func (e *Environment) StopWatch() + func (e *Environment) UnregisterCallback(id string) error + type EnvironmentCallback func(oldEnv, newEnv EnvironmentType) error + type EnvironmentCallbackInfo struct + Async bool + Callback EnvironmentCallback + ID string + Priority int + type EnvironmentInterface interface + CheckAndUpdateEnv func() + ClearCallbacks func() + ClearEnv func() + ListCallbacks func() []string + RegisterCallback func(id string, callback EnvironmentCallback, priority int, async bool) error + SetCheckFrequency func(frequency time.Duration) *Environment + SetEnvironment func(value EnvironmentType) *Environment + StopWatch func() + UnregisterCallback func(id string) error + type EnvironmentManager struct + func GetGlobalEnvManager() *EnvironmentManager + func NewEnvironmentManager() *EnvironmentManager + func (em *EnvironmentManager) DetectEnvironmentType(envString string) (EnvironmentType, bool) + func (em *EnvironmentManager) IsEnvironment(envString string, envType EnvironmentType) bool + func (em *EnvironmentManager) IsRegistered(envType EnvironmentType) bool + func (em *EnvironmentManager) RegisterEnvironment(envType EnvironmentType, aliases ...string) + type EnvironmentType string + const DefaultEnv + const Dev + const EnvArgentina + const EnvAustralia + const EnvAustria + const EnvBangladesh + const EnvBelgium + const EnvBrazil + const EnvCambodia + const EnvCanada + const EnvChile + const EnvChina + const EnvColombia + const EnvDebug + const EnvDemo + const EnvDenmark + const EnvDevelopment + const EnvEgypt + const EnvFinland + const EnvFrance + const EnvGermany + const EnvHongKong + const EnvIndia + const EnvIndonesia + const EnvIntegration + const EnvIsrael + const EnvItaly + const EnvJapan + const EnvKenya + const EnvKorea + const EnvLaos + const EnvLocal + const EnvMacao + const EnvMalaysia + const EnvMexico + const EnvMyanmar + const EnvNepal + const EnvNetherlands + const EnvNewZealand + const EnvNigeria + const EnvNorway + const EnvPakistan + const EnvPeru + const EnvPhilippines + const EnvPoland + const EnvProduction + const EnvQatar + const EnvRussia + const EnvSaudiArabia + const EnvSingapore + const EnvSouthAfrica + const EnvSpain + const EnvSriLanka + const EnvStaging + const EnvSweden + const EnvSwitzerland + const EnvTaiwan + const EnvTest + const EnvThailand + const EnvTurkey + const EnvUAE + const EnvUAT + const EnvUK + const EnvUSA + const EnvVietnam + const Fat + const Prod + const Sit + const Uat + func GetCurrentEnvironment() EnvironmentType + func GetEnvironment() EnvironmentType + func GetEnvironmentFromContext(ctx context.Context) (EnvironmentType, bool) + func (e EnvironmentType) IsValid() bool + func (e EnvironmentType) String() string + type HotReloadConfig struct + CallbackTimeout time.Duration + DebounceDelay time.Duration + EnableEnvWatch bool + Enabled bool + MaxRetries int + WatchInterval time.Duration + func DefaultHotReloadConfig() *HotReloadConfig + type HotReloader interface + GetConfig func() any + IsRunning func() bool + Reload func(ctx context.Context) error + SetConfig func(config any) error + Start func(ctx context.Context) error + Stop func() error + func GetHotReloaderFromContext(ctx context.Context) (HotReloader, bool) + func NewHotReloader(config interface{}, viper *viper.Viper, configPath string, ...) (HotReloader, error) + type IntegratedConfigManager struct + func CreateIntegratedManager(config interface{}, configPath string, env EnvironmentType) (*IntegratedConfigManager, error) + func NewIntegratedConfigManager(config interface{}, options *IntegratedConfigOptions) (*IntegratedConfigManager, error) + func QuickBuild[T any](config *T, configPath string, env EnvironmentType) (*IntegratedConfigManager, error) + func QuickStart[T any](config *T, configPath string, env EnvironmentType) (*IntegratedConfigManager, error) + func (icm *IntegratedConfigManager) GetConfig() interface{} + func (icm *IntegratedConfigManager) GetConfigMetadata() map[string]interface{} + func (icm *IntegratedConfigManager) GetConfigPath() string + func (icm *IntegratedConfigManager) GetContextManager() *ContextManager + func (icm *IntegratedConfigManager) GetEnvironment() EnvironmentType + func (icm *IntegratedConfigManager) GetEnvironmentManager() *Environment + func (icm *IntegratedConfigManager) GetHotReloader() HotReloader + func (icm *IntegratedConfigManager) GetViper() *viper.Viper + func (icm *IntegratedConfigManager) IsRunning() bool + func (icm *IntegratedConfigManager) MustStart(ctx context.Context) + func (icm *IntegratedConfigManager) RegisterConfigCallback(callback CallbackFunc, options CallbackOptions) error + func (icm *IntegratedConfigManager) RegisterEnvironmentCallback(id string, callback EnvironmentCallback, priority int, async bool) error + func (icm *IntegratedConfigManager) SetEnvironment(env EnvironmentType) error + func (icm *IntegratedConfigManager) Start(ctx context.Context) error + func (icm *IntegratedConfigManager) Stop() error + func (icm *IntegratedConfigManager) UnregisterConfigCallback(id string) error + func (icm *IntegratedConfigManager) UnregisterEnvironmentCallback(id string) error + func (icm *IntegratedConfigManager) ValidateConfig() error + func (icm *IntegratedConfigManager) WithContext(ctx context.Context) context.Context + type IntegratedConfigOptions struct + ConfigPath string + ContextOptions *ContextKeyOptions + Environment EnvironmentType + HotReloadConfig *HotReloadConfig + func DefaultIntegratedConfigOptions() *IntegratedConfigOptions + type ManagerBuilder struct + func (b *ManagerBuilder[T]) Build() (*IntegratedConfigManager, error) + func (b *ManagerBuilder[T]) BuildAndStart(ctx ...context.Context) (*IntegratedConfigManager, error) + func (b *ManagerBuilder[T]) MustBuildAndStart(ctx ...context.Context) *IntegratedConfigManager + func (b *ManagerBuilder[T]) WithConfigPath(path string) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithContext(options *ContextKeyOptions) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithEnvironment(env EnvironmentType) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithHotReload(config *HotReloadConfig) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithPattern(pattern string) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithPrefix(prefix string) ConfigBuilder[T] + func (b *ManagerBuilder[T]) WithSearchPath(path string) ConfigBuilder[T] + type ModuleConfig struct + DefaultFunc func() interface{} + Description string + Enabled bool + LastGenerated time.Time + Name string + OutputSubDir string + PackageName string + SourceFile string + StructName string + type SmartConfigGenerator struct + BackupExisting bool + BaseOutputDir string + ForceRegenerate bool + GenerateJSON bool + GenerateYAML bool + IncludeComments bool + Logger *gologger.Logger + ModuleRegistry map[string]ModuleConfig + OverwriteExisting bool + func NewSmartConfigGenerator(baseOutputDir string) *SmartConfigGenerator + func (sg *SmartConfigGenerator) CleanupBackupFiles(maxAge time.Duration) error + func (sg *SmartConfigGenerator) DisableModule(moduleName string) error + func (sg *SmartConfigGenerator) EnableModule(moduleName string) error + func (sg *SmartConfigGenerator) EnableOnlyModules(moduleNames ...string) error + func (sg *SmartConfigGenerator) GenerateAllConfigs() error + func (sg *SmartConfigGenerator) GenerateModuleConfig(module ModuleConfig) error + func (sg *SmartConfigGenerator) GenerateModulesByNames(moduleNames ...string) error + func (sg *SmartConfigGenerator) GetEnabledModules() []string + func (sg *SmartConfigGenerator) GetModuleInfo(moduleName string) (*ModuleConfig, error) + func (sg *SmartConfigGenerator) GetModuleList() []string + func (sg *SmartConfigGenerator) PrintModuleStatus() + func (sg *SmartConfigGenerator) UpdateModuleConfig(moduleName string, updates map[string]interface{}) error + func (sg *SmartConfigGenerator) ValidateAllModules() error + func (sg *SmartConfigGenerator) ValidateModuleConfig(moduleName string) error + func (sg *SmartConfigGenerator) WithBackupExisting(backup bool) *SmartConfigGenerator + func (sg *SmartConfigGenerator) WithForceRegenerate(force bool) *SmartConfigGenerator + func (sg *SmartConfigGenerator) WithIncludeComments(include bool) *SmartConfigGenerator + func (sg *SmartConfigGenerator) WithLogger(logger *gologger.Logger) *SmartConfigGenerator