transform

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dir

func Dir(dir string, opts Options) ([]string, error)

Dir walks a directory and transforms all YAML/JSON files.

func File

func File(path string, opts Options) (bool, error)

Restore File for tests (as a wrapper for FileWithChanges)

func FileWithChanges

func FileWithChanges(path string, opts Options, changes *[]KeyChange) (bool, error)

FileWithChanges is like File, but collects key changes for dry-run summary.

func IsJSON added in v0.2.0

func IsJSON(path string) bool

IsJSON returns true if the file has a .json extension.

func IsYAML added in v0.2.0

func IsYAML(path string) bool

Exported extension helpers for reuse in cmd/root.go IsYAML returns true if the file has a .yaml or .yml extension.

func ReportValidationErrors added in v0.7.1

func ReportValidationErrors(validationResult *ValidationResult, filePath string) string

ReportValidationErrors formats validation errors for display with improved visual formatting

func ValidateAndReportCompositions added in v0.7.1

func ValidateAndReportCompositions(root *yaml.Node, filePath string) string

ValidateAndReportCompositions validates compositions and returns formatted error report

Types

type DefaultsOptions added in v0.4.0

type DefaultsOptions struct {
	Options
	DefaultValues config.DefaultValues
}

DefaultsOptions extends the regular Options with default values settings

type DefaultsResult added in v0.4.0

type DefaultsResult struct {
	Changed         bool
	ProcessedFiles  []string
	AppliedDefaults map[string][]string // file -> list of applied defaults
	SkippedTargets  map[string][]string // file -> list of skipped targets with reasons
}

DefaultsResult represents the result of defaults processing

func ProcessDefaultsInDir added in v0.4.0

func ProcessDefaultsInDir(dir string, opts DefaultsOptions) (*DefaultsResult, error)

ProcessDefaultsInDir processes default values in all OpenAPI files in a directory

type FlattenOptions added in v0.2.0

type FlattenOptions struct {
	Options
	FlattenResponses bool
}

FlattenOptions extends the regular Options with flattening-specific settings

type FlattenResult added in v0.2.0

type FlattenResult struct {
	Changed           bool
	ProcessedFiles    []string
	FlattenedRefs     map[string][]string // file -> flattened reference paths
	RemovedComponents map[string][]string // file -> removed component names
}

FlattenResult represents the result of flattening processing

func ProcessFlatteningInDir added in v0.2.0

func ProcessFlatteningInDir(dir string, opts FlattenOptions) (*FlattenResult, error)

ProcessFlatteningInDir processes response flattening in all OpenAPI files in a directory

type KeyChange

type KeyChange struct {
	File   string
	OldKey string
	NewKey string
	Line   int // Add line number for YAML changes, 0 for JSON
}

KeyChange represents a change in a key's mapping.

type Options

type Options struct {
	Mappings   map[string]string
	Exclude    []string
	DryRun     bool
	Backup     bool
	OutputFile string
}

type PaginationOptions added in v0.2.0

type PaginationOptions struct {
	Options
	PaginationPriority []string
	EndpointRules      []config.EndpointPaginationRule
}

PaginationOptions extends the regular Options with pagination-specific settings

type PaginationResult added in v0.2.0

type PaginationResult struct {
	Changed          bool
	ProcessedFiles   []string
	RemovedParams    map[string][]string // file -> removed param names
	RemovedResponses map[string][]string // file -> removed response codes
	ModifiedSchemas  map[string][]string // file -> modified schema paths
	UnusedComponents []string            // components that became unused
}

PaginationResult represents the result of pagination processing

func ProcessPaginationInDir added in v0.2.0

func ProcessPaginationInDir(dir string, opts PaginationOptions) (*PaginationResult, error)

ProcessPaginationInDir processes pagination in all OpenAPI files in a directory

type RuleEntry added in v0.4.0

type RuleEntry struct {
	Name string
	Rule config.DefaultRule
}

RuleEntry for sorting rules by priority

type TransformationPipeline added in v0.6.0

type TransformationPipeline struct {
	Config          *config.Config
	VendorProviders []string
	DryRun          bool
	Backup          bool
	OutputFile      string
}

TransformationPipeline represents the complete transformation pipeline

func NewTransformationPipeline added in v0.6.0

func NewTransformationPipeline(cfg *config.Config, vendorProviders []string, dryRun bool, backup bool, outputFile string) *TransformationPipeline

NewTransformationPipeline creates a new transformation pipeline

func (*TransformationPipeline) ExecuteFullPipeline added in v0.6.0

func (tp *TransformationPipeline) ExecuteFullPipeline(inputPath string) (*TransformationResults, error)

ExecuteFullPipeline runs the complete transformation pipeline in the correct order

type TransformationResults added in v0.6.0

type TransformationResults struct {
	Changed            []string
	PaginationResult   *PaginationResult
	FlattenResult      *FlattenResult
	VendorResult       *VendorExtensionResult
	DefaultsResult     *DefaultsResult
	AnyTransformations bool
}

TransformationResults aggregates results from all transformation steps

type ValidationError added in v0.7.1

type ValidationError struct {
	Message  string
	Location string
	Field    string
}

ValidationError represents validation errors in OpenAPI structures

func (ValidationError) Error added in v0.7.1

func (e ValidationError) Error() string

type ValidationResult added in v0.7.1

type ValidationResult struct {
	Valid  bool
	Errors []ValidationError
}

ValidationResult contains validation results

func ValidateCompositionStructures added in v0.7.1

func ValidateCompositionStructures(root *yaml.Node, filePath string) *ValidationResult

ValidateCompositionStructures validates oneOf/anyOf/allOf structures in OpenAPI documents

type VendorExtensionOptions added in v0.3.0

type VendorExtensionOptions struct {
	Options
	VendorExtensions config.VendorExtensions
	EnabledProviders []string // specific providers to apply, empty means all
}

VendorExtensionOptions extends the regular Options with vendor extension settings

type VendorExtensionResult added in v0.3.0

type VendorExtensionResult struct {
	Changed           bool
	ProcessedFiles    []string
	AddedExtensions   map[string][]string // file -> list of added extensions
	SkippedOperations map[string][]string // file -> list of skipped operations with reasons
}

VendorExtensionResult represents the result of vendor extension processing

func ProcessVendorExtensionsInDir added in v0.3.0

func ProcessVendorExtensionsInDir(dir string, opts VendorExtensionOptions) (*VendorExtensionResult, error)

ProcessVendorExtensionsInDir processes vendor extensions in all OpenAPI files in a directory

Jump to

Keyboard shortcuts

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