config

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Sep 26, 2025 License: MIT Imports: 11 Imported by: 0

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

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

Jump to

Keyboard shortcuts

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