- High-performance batch data generation (~150k records/sec) - Seeded randomness for reproducible load tests - Rich Ethiopian data: names, phones (+251), cities, regions - Four data types: person, address, product, analytics - Three modes: CLI, Go library, HTTP API - Project skill available in .skills/go-faker/SKILL.md
50 lines
No EOL
1.4 KiB
Go
50 lines
No EOL
1.4 KiB
Go
package faker
|
|
|
|
import (
|
|
"go-faker/generator"
|
|
"go-faker/types"
|
|
)
|
|
|
|
type Faker struct {
|
|
inner *generator.Faker
|
|
}
|
|
|
|
func New(seed string) *Faker {
|
|
return &Faker{inner: generator.New(seed)}
|
|
}
|
|
|
|
func (f *Faker) GeneratePerson(fields []string) map[string]any {
|
|
return f.inner.GeneratePerson(fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateAddress(fields []string) map[string]any {
|
|
return f.inner.GenerateAddress(fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateProduct(fields []string) map[string]any {
|
|
return f.inner.GenerateProduct(fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateAnalytics(fields []string) map[string]any {
|
|
return f.inner.GenerateAnalytics(fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateBatch(count int, dataType types.DataType, fields []string) []map[string]any {
|
|
return f.inner.GenerateBatch(count, dataType, fields)
|
|
}
|
|
|
|
func (f *Faker) GeneratePersonStruct(count int, fields []string) []map[string]any {
|
|
return f.inner.GenerateBatch(count, types.TypePerson, fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateAddressStruct(count int, fields []string) []map[string]any {
|
|
return f.inner.GenerateBatch(count, types.TypeAddress, fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateProductStruct(count int, fields []string) []map[string]any {
|
|
return f.inner.GenerateBatch(count, types.TypeProduct, fields)
|
|
}
|
|
|
|
func (f *Faker) GenerateAnalyticsStruct(count int, fields []string) []map[string]any {
|
|
return f.inner.GenerateBatch(count, types.TypeAnalytics, fields)
|
|
} |