Skip to content

Compogo/viper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Compogo Viper 🦙

Compogo Viper — это готовая интеграция spf13/viper с фреймворком Compogo. Добавляется одной строкой и автоматически настраивает конфигурацию через файлы и переменные окружения.

🚀 Установка

go get github.com/Compogo/viper

📦 Использование

package main

import (
    "github.com/Compogo/compogo"
    "github.com/Compogo/dig"
    "github.com/Compogo/viper"
    "github.com/Compogo/logrus"
    "github.com/Compogo/myapp/service"
)

func main() {
    app := compogo.NewApp("myapp",
        compogo.WithOsSignalCloser(),
        dig.WithDig(),
        viper.WithViper(),                     // ← одна строка
        logrus.WithLogrus(),
        compogo.WithComponents(
            service.Component,
        ),
    )

    if err := app.Serve(); err != nil {
        panic(err)
    }
}

✨ Возможности

🎯 Три способа получить конфигуратор

В любом компоненте можно запросить:

// 1. Как интерфейс configurator.Configurator
type Service struct {
    cfg configurator.Configurator
}

// 2. Как *viper.Decorator (с дополнительными методами)
type Service struct {
    dec *viper.Decorator
}

// 3. Как чистый *viper.Viper
type Service struct {
    v *viper.Viper
}

🎚️ Полное покрытие типов

GetString(key string) string
GetBool(key string) bool
GetInt(key string) int
GetInt8(key string) int8
GetInt16(key string) int16
GetInt32(key string) int32
GetInt64(key string) int64
GetUint(key string) uint
GetUint8(key string) uint8
GetUint16(key string) uint16
GetUint32(key string) uint32
GetUint64(key string) uint64
GetFloat32(key string) float32
GetFloat64(key string) float64
GetTime(key string) time.Time
GetDuration(key string) time.Duration
GetIntSlice(key string) []int
GetStringSlice(key string) []string
GetStringMap(key string) map[string]interface{}
GetStringMapString(key string) map[string]string
GetStringMapStringSlice(key string) map[string][]string
GetSizeInBytes(key string) uint

📄 Пример конфига (config.yaml)

app:
  name: myapp
  port: 8080
  
database:
  host: localhost
  port: 5432
  user: postgres

About

Compogo Viper — это готовая интеграция Viper с фреймворком Compogo.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages