Documentation
¶
Overview ¶
Package config provides configuration persistence and management functionality.
This file implements configuration saving, loading, and management capabilities for interactive CLI configurations, allowing users to save and reuse their project generation settings.
Index ¶
- type ConfigurationInfo
- type ConfigurationListOptions
- type ConfigurationPersistence
- func (cp *ConfigurationPersistence) ConfigurationExists(name string) bool
- func (cp *ConfigurationPersistence) DeleteConfiguration(name string) error
- func (cp *ConfigurationPersistence) ExportConfiguration(name, format string) ([]byte, error)
- func (cp *ConfigurationPersistence) GetConfigurationInfo(name string) (*ConfigurationInfo, error)
- func (cp *ConfigurationPersistence) ImportConfiguration(name string, data []byte, format string) error
- func (cp *ConfigurationPersistence) ListConfigurations(options *ConfigurationListOptions) ([]*SavedConfiguration, error)
- func (cp *ConfigurationPersistence) LoadConfiguration(name string) (*SavedConfiguration, error)
- func (cp *ConfigurationPersistence) SaveConfiguration(name string, config *SavedConfiguration) error
- func (cp *ConfigurationPersistence) UpdateConfiguration(name string, config *SavedConfiguration) error
- type ConfigurationValidator
- type GenerationSettings
- type SavedConfiguration
- type TemplateSelection
- type UserPreferences
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigurationInfo ¶
type ConfigurationInfo struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Version string `json:"version"`
Tags []string `json:"tags,omitempty"`
FileSize int64 `json:"file_size"`
FilePath string `json:"file_path"`
}
ConfigurationInfo contains basic information about a saved configuration
type ConfigurationListOptions ¶
type ConfigurationListOptions struct {
SortBy string `json:"sort_by"` // "name", "created_at", "updated_at"
SortOrder string `json:"sort_order"` // "asc", "desc"
FilterTags []string `json:"filter_tags"` // Filter by tags
SearchQuery string `json:"search_query"` // Search in name and description
Limit int `json:"limit"` // Maximum number of results
Offset int `json:"offset"` // Pagination offset
}
ConfigurationListOptions contains options for listing configurations
type ConfigurationPersistence ¶
type ConfigurationPersistence struct {
// contains filtered or unexported fields
}
ConfigurationPersistence handles saving and loading of interactive configurations
func NewConfigurationPersistence ¶
func NewConfigurationPersistence(configDir string, logger interfaces.Logger) *ConfigurationPersistence
NewConfigurationPersistence creates a new configuration persistence manager
func (*ConfigurationPersistence) ConfigurationExists ¶
func (cp *ConfigurationPersistence) ConfigurationExists(name string) bool
ConfigurationExists checks if a configuration with the given name exists
func (*ConfigurationPersistence) DeleteConfiguration ¶
func (cp *ConfigurationPersistence) DeleteConfiguration(name string) error
DeleteConfiguration deletes a saved configuration
func (*ConfigurationPersistence) ExportConfiguration ¶
func (cp *ConfigurationPersistence) ExportConfiguration(name, format string) ([]byte, error)
ExportConfiguration exports a configuration to a different format
func (*ConfigurationPersistence) GetConfigurationInfo ¶
func (cp *ConfigurationPersistence) GetConfigurationInfo(name string) (*ConfigurationInfo, error)
GetConfigurationInfo returns basic information about a configuration without loading the full content
func (*ConfigurationPersistence) ImportConfiguration ¶
func (cp *ConfigurationPersistence) ImportConfiguration(name string, data []byte, format string) error
ImportConfiguration imports a configuration from data
func (*ConfigurationPersistence) ListConfigurations ¶
func (cp *ConfigurationPersistence) ListConfigurations(options *ConfigurationListOptions) ([]*SavedConfiguration, error)
ListConfigurations lists all saved configurations with optional filtering
func (*ConfigurationPersistence) LoadConfiguration ¶
func (cp *ConfigurationPersistence) LoadConfiguration(name string) (*SavedConfiguration, error)
LoadConfiguration loads a configuration by name
func (*ConfigurationPersistence) SaveConfiguration ¶
func (cp *ConfigurationPersistence) SaveConfiguration(name string, config *SavedConfiguration) error
SaveConfiguration saves a configuration with the given name
func (*ConfigurationPersistence) UpdateConfiguration ¶
func (cp *ConfigurationPersistence) UpdateConfiguration(name string, config *SavedConfiguration) error
UpdateConfiguration updates an existing configuration
type ConfigurationValidator ¶
type ConfigurationValidator struct {
// contains filtered or unexported fields
}
ConfigurationValidator validates saved configurations
func (*ConfigurationValidator) ValidateConfiguration ¶
func (cv *ConfigurationValidator) ValidateConfiguration(config *SavedConfiguration) error
ValidateConfiguration validates a saved configuration
type GenerationSettings ¶
type GenerationSettings struct {
IncludeExamples bool `yaml:"include_examples" json:"include_examples"`
IncludeTests bool `yaml:"include_tests" json:"include_tests"`
IncludeDocs bool `yaml:"include_docs" json:"include_docs"`
UpdateVersions bool `yaml:"update_versions" json:"update_versions"`
MinimalMode bool `yaml:"minimal_mode" json:"minimal_mode"`
ExcludePatterns []string `yaml:"exclude_patterns,omitempty" json:"exclude_patterns,omitempty"`
IncludeOnlyPaths []string `yaml:"include_only_paths,omitempty" json:"include_only_paths,omitempty"`
BackupExisting bool `yaml:"backup_existing" json:"backup_existing"`
OverwriteExisting bool `yaml:"overwrite_existing" json:"overwrite_existing"`
}
GenerationSettings contains settings for project generation
type SavedConfiguration ¶
type SavedConfiguration struct {
// Metadata
Name string `yaml:"name" json:"name"`
Description string `yaml:"description,omitempty" json:"description,omitempty"`
CreatedAt time.Time `yaml:"created_at" json:"created_at"`
UpdatedAt time.Time `yaml:"updated_at" json:"updated_at"`
Version string `yaml:"version" json:"version"`
Tags []string `yaml:"tags,omitempty" json:"tags,omitempty"`
// Project Configuration
ProjectConfig *models.ProjectConfig `yaml:"project_config" json:"project_config"`
// Template Selections (using interface{} to avoid circular dependencies)
SelectedTemplates []TemplateSelection `yaml:"selected_templates" json:"selected_templates"`
// Generation Settings
GenerationSettings *GenerationSettings `yaml:"generation_settings,omitempty" json:"generation_settings,omitempty"`
// User Preferences
UserPreferences *UserPreferences `yaml:"user_preferences,omitempty" json:"user_preferences,omitempty"`
}
SavedConfiguration represents a saved interactive configuration
type TemplateSelection ¶
type TemplateSelection struct {
TemplateName string `yaml:"template_name" json:"template_name"`
Category string `yaml:"category" json:"category"`
Technology string `yaml:"technology" json:"technology"`
Version string `yaml:"version" json:"version"`
Selected bool `yaml:"selected" json:"selected"`
Options map[string]interface{} `yaml:"options,omitempty" json:"options,omitempty"`
}
TemplateSelection represents a selected template with options
type UserPreferences ¶
type UserPreferences struct {
DefaultLicense string `yaml:"default_license,omitempty" json:"default_license,omitempty"`
DefaultAuthor string `yaml:"default_author,omitempty" json:"default_author,omitempty"`
DefaultEmail string `yaml:"default_email,omitempty" json:"default_email,omitempty"`
DefaultOrganization string `yaml:"default_organization,omitempty" json:"default_organization,omitempty"`
PreferredFormat string `yaml:"preferred_format,omitempty" json:"preferred_format,omitempty"`
CustomDefaults map[string]string `yaml:"custom_defaults,omitempty" json:"custom_defaults,omitempty"`
}
UserPreferences contains user-specific preferences