transformers

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2025 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrUnsupportedValueType     = errors.New("unsupported value type for transformer")
	ErrUnsupportedGenerator     = errors.New("transformer doesn't support the configured generator")
	ErrUnsupportedTransformer   = errors.New("unsupported transformer config")
	ErrInvalidParameters        = errors.New("invalid transformer parameters")
	ErrInvalidDynamicParameters = errors.New("invalid transformer dynamic parameters")
	ErrUnknownParameter         = errors.New("unknown parameter provided to transformer")
)

Functions

func FindDynamicValue added in v0.5.0

func FindDynamicValue[T any](param *DynamicParameter, dynamicValues map[string]any, defaultValue T) (T, error)

func FindParameter

func FindParameter[T any](params ParameterValues, name string) (T, bool, error)

func FindParameterArray added in v0.4.1

func FindParameterArray[T any](params ParameterValues, name string) ([]T, bool, error)

func FindParameterWithDefault added in v0.5.0

func FindParameterWithDefault[T any](params ParameterValues, name string, defaultValue T) (T, error)

func ParseDynamicParameters added in v0.5.0

func ParseDynamicParameters(params ParameterValues) (map[string]*DynamicParameter, error)

func ValidateParameters added in v0.5.0

func ValidateParameters(provided map[string]any, expected []string) error

ValidateParameters checks if all provided parameters are in the expected set

Types

type Config

type Config struct {
	Name              TransformerType
	Parameters        ParameterValues
	DynamicParameters ParameterValues
}

type Definition added in v0.6.0

type Definition struct {
	SupportedTypes []SupportedDataType
	Parameters     []Parameter
}

func JSONTransformerDefinition added in v0.6.5

func JSONTransformerDefinition() *Definition

func LiteralStringTransformerDefinition added in v0.6.0

func LiteralStringTransformerDefinition() *Definition

func MaskingTransformerDefinition added in v0.6.0

func MaskingTransformerDefinition() *Definition

func PhoneNumberTransformerDefinition added in v0.6.0

func PhoneNumberTransformerDefinition() *Definition

func StringTransformerDefinition added in v0.6.0

func StringTransformerDefinition() *Definition

func TemplateTransformerDefinition added in v0.6.0

func TemplateTransformerDefinition() *Definition

type DynamicParameter added in v0.5.0

type DynamicParameter struct {
	Column string
}

type JSONTransformer added in v0.6.5

type JSONTransformer struct {
	// contains filtered or unexported fields
}

func NewJSONTransformer added in v0.6.5

func NewJSONTransformer(params ParameterValues) (*JSONTransformer, error)

func (*JSONTransformer) CompatibleTypes added in v0.6.5

func (jt *JSONTransformer) CompatibleTypes() []SupportedDataType

func (*JSONTransformer) Transform added in v0.6.5

func (jt *JSONTransformer) Transform(_ context.Context, value Value) (any, error)

func (*JSONTransformer) Type added in v0.6.5

func (jt *JSONTransformer) Type() TransformerType

type LiteralStringTransformer added in v0.5.0

type LiteralStringTransformer struct {
	// contains filtered or unexported fields
}

func NewLiteralStringTransformer added in v0.5.0

func NewLiteralStringTransformer(params ParameterValues) (*LiteralStringTransformer, error)

func (*LiteralStringTransformer) CompatibleTypes added in v0.5.0

func (lst *LiteralStringTransformer) CompatibleTypes() []SupportedDataType

func (*LiteralStringTransformer) Transform added in v0.5.0

func (lst *LiteralStringTransformer) Transform(_ context.Context, value Value) (any, error)

func (*LiteralStringTransformer) Type added in v0.6.0

type MaskingTransformer added in v0.5.0

type MaskingTransformer struct {
	// contains filtered or unexported fields
}

MaskingTransformer is a transformer that masks sensitive data using the Masker library.

func NewMaskingTransformer added in v0.5.0

func NewMaskingTransformer(params ParameterValues) (*MaskingTransformer, error)

NewMaskingTransformer creates a new MaskingTransformer with the given masking function.

func (*MaskingTransformer) CompatibleTypes added in v0.5.0

func (t *MaskingTransformer) CompatibleTypes() []SupportedDataType

func (*MaskingTransformer) Transform added in v0.5.0

func (t *MaskingTransformer) Transform(_ context.Context, value Value) (any, error)

Transform applies the masking function to the input value and returns the masked value.

func (*MaskingTransformer) Type added in v0.6.0

type Parameter added in v0.6.0

type Parameter struct {
	Name          string
	SupportedType string
	Default       any
	Dynamic       bool
	Required      bool
	Values        []any
}

type ParameterValues added in v0.6.0

type ParameterValues map[string]any

type PhoneNumberTransformer added in v0.5.0

type PhoneNumberTransformer struct {
	// contains filtered or unexported fields
}

func NewPhoneNumberTransformer added in v0.5.0

func NewPhoneNumberTransformer(params, dynamicParams ParameterValues) (*PhoneNumberTransformer, error)

func (*PhoneNumberTransformer) CompatibleTypes added in v0.5.0

func (t *PhoneNumberTransformer) CompatibleTypes() []SupportedDataType

func (*PhoneNumberTransformer) Transform added in v0.5.0

func (t *PhoneNumberTransformer) Transform(_ context.Context, value Value) (any, error)

func (*PhoneNumberTransformer) Type added in v0.6.0

type StringTransformer

type StringTransformer struct {
}

func NewStringTransformer

func NewStringTransformer(params ParameterValues) (*StringTransformer, error)

func (*StringTransformer) CompatibleTypes added in v0.5.0

func (st *StringTransformer) CompatibleTypes() []SupportedDataType

func (*StringTransformer) Transform

func (st *StringTransformer) Transform(_ context.Context, v Value) (any, error)

func (*StringTransformer) Type added in v0.6.0

type SupportedDataType added in v0.5.0

type SupportedDataType string
const (
	ByteArrayDataType      SupportedDataType = "byte_array"
	StringDataType         SupportedDataType = "string"
	BooleanDataType        SupportedDataType = "boolean"
	Integer8DataType       SupportedDataType = "integer8"
	UInteger8DataType      SupportedDataType = "uinteger8"
	Integer16DataType      SupportedDataType = "integer16"
	UInteger16DataType     SupportedDataType = "uinteger16"
	Integer32DataType      SupportedDataType = "integer32"
	UInteger32DataType     SupportedDataType = "uinteger32"
	Integer64DataType      SupportedDataType = "integer64"
	UInteger64DataType     SupportedDataType = "uinteger64"
	Float32DataType        SupportedDataType = "float32"
	Float64DataType        SupportedDataType = "float64"
	UUIDDataType           SupportedDataType = "uuid"
	UInt8ArrayOf16DataType SupportedDataType = "uint8_array_of_16"
	DateDataType           SupportedDataType = "date"
	DatetimeDataType       SupportedDataType = "datetime"
	JSONDataType           SupportedDataType = "json"
	AllDataTypes           SupportedDataType = "all"
)

type TemplateTransformer added in v0.6.0

type TemplateTransformer struct {
	// contains filtered or unexported fields
}

func NewTemplateTransformer added in v0.6.0

func NewTemplateTransformer(params ParameterValues) (*TemplateTransformer, error)

func (*TemplateTransformer) CompatibleTypes added in v0.6.0

func (t *TemplateTransformer) CompatibleTypes() []SupportedDataType

func (*TemplateTransformer) Transform added in v0.6.0

func (t *TemplateTransformer) Transform(_ context.Context, value Value) (any, error)

func (*TemplateTransformer) Type added in v0.6.0

type Transformer

type Transformer interface {
	Transform(context.Context, Value) (any, error)
	CompatibleTypes() []SupportedDataType
	Type() TransformerType
}

type TransformerType

type TransformerType string
const (
	String                 TransformerType = "string"
	LiteralString          TransformerType = "literal_string"
	PhoneNumber            TransformerType = "phone_number"
	NeosyncString          TransformerType = "neosync_string"
	GreenmaskString        TransformerType = "greenmask_string"
	NeosyncFirstName       TransformerType = "neosync_firstname"
	GreenmaskFirstName     TransformerType = "greenmask_firstname"
	NeosyncLastName        TransformerType = "neosync_lastname"
	NeosyncFullName        TransformerType = "neosync_fullname"
	NeosyncEmail           TransformerType = "neosync_email"
	GreenmaskInteger       TransformerType = "greenmask_integer"
	GreenmaskFloat         TransformerType = "greenmask_float"
	GreenmaskUUID          TransformerType = "greenmask_uuid"
	GreenmaskBoolean       TransformerType = "greenmask_boolean"
	GreenmaskChoice        TransformerType = "greenmask_choice"
	GreenmaskUnixTimestamp TransformerType = "greenmask_unix_timestamp"
	GreenmaskDate          TransformerType = "greenmask_date"
	GreenmaskUTCTimestamp  TransformerType = "greenmask_utc_timestamp"
	Masking                TransformerType = "masking"
	Template               TransformerType = "template"
	JSON                   TransformerType = "json"
)

type Value added in v0.5.0

type Value struct {
	TransformValue any
	DynamicValues  map[string]any
}

func NewValue added in v0.5.0

func NewValue(transformValue any, dynamicValues map[string]any) Value

func (*Value) GetDynamicValue added in v0.6.0

func (v *Value) GetDynamicValue(name string) (any, error)

func (*Value) GetValue added in v0.6.0

func (v *Value) GetValue() any

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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