123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package options
- import (
- "github.com/imgproxy/imgproxy/v3/security"
- )
- // Presets is a map of preset names to their corresponding urlOptions
- type Presets = map[string]urlOptions
- // Factory creates ProcessingOptions instances
- type Factory struct {
- config *Config // Factory configuration
- security *security.Checker // Security checker for generating security options
- presets Presets // Parsed presets
- defaultPO *ProcessingOptions // Default processing options
- }
- // NewFactory creates new Factory instance
- func NewFactory(config *Config, security *security.Checker) (*Factory, error) {
- if err := config.Validate(); err != nil {
- return nil, err
- }
- f := &Factory{
- config: config,
- security: security,
- presets: make(map[string]urlOptions),
- defaultPO: newDefaultProcessingOptions(config, security),
- }
- if err := f.parsePresets(); err != nil {
- return nil, err
- }
- if err := f.validatePresets(); err != nil {
- return nil, err
- }
- return f, nil
- }
- // NewProcessingOptions creates new ProcessingOptions instance
- func (f *Factory) NewProcessingOptions() *ProcessingOptions {
- return f.defaultPO.clone()
- }
|