Documentation ¶
Overview ¶
Package kit implements a highly opinionated Go backend kit.
Index ¶
- Variables
- type Binder
- type BinderConfig
- type Cache
- func (self *Cache) Close(ctx context.Context) error
- func (self *Cache) Delete(ctx context.Context, key string) error
- func (self *Cache) Get(ctx context.Context, key string, dest any) error
- func (self *Cache) Health(ctx context.Context) error
- func (self *Cache) Set(ctx context.Context, key string, value any, ttl *time.Duration) error
- type CacheConfig
- type Database
- func (self *Database) Close(ctx context.Context) error
- func (self *Database) Exec(ctx context.Context, stmt *sqlf.Stmt) (int, error)
- func (self *Database) Health(ctx context.Context) error
- func (self *Database) Query(ctx context.Context, stmt *sqlf.Stmt) error
- func (self *Database) Transaction(ctx context.Context, level *IsolationLevel, fn func(ctx context.Context) error) error
- type DatabaseConfig
- type Enqueuer
- type EnqueuerConfig
- type Environment
- type ErrorHandler
- type ErrorHandlerConfig
- type HTTPClient
- type HTTPClientConfig
- type HTTPError
- func (self HTTPError) Cause(err error) *HTTPError
- func (self HTTPError) Code() string
- func (self HTTPError) Error() string
- func (self HTTPError) Format(format fmt.State, verb rune)
- func (self HTTPError) Has(err error) bool
- func (self HTTPError) Is(err error) bool
- func (self HTTPError) MarshalJSON() ([]byte, error)
- func (self HTTPError) MarshalText() ([]byte, error)
- func (self *HTTPError) Redact()
- func (self HTTPError) Status() int
- func (self HTTPError) String() string
- func (self HTTPError) Unwrap() error
- type HTTPServer
- func (self *HTTPServer) Close(ctx context.Context) error
- func (self *HTTPServer) Default(middleware ...echo.MiddlewareFunc) *echo.Group
- func (self *HTTPServer) Host(host string, middleware ...echo.MiddlewareFunc) *echo.Group
- func (self *HTTPServer) Run(ctx context.Context) error
- func (self *HTTPServer) Use(middleware ...echo.MiddlewareFunc)
- type HTTPServerConfig
- type IsolationLevel
- type Key
- type Level
- type Localizer
- type LocalizerConfig
- type Logger
- func (self Logger) Close(ctx context.Context) error
- func (self Logger) Debug(i ...any)
- func (self Logger) Debugf(format string, i ...any)
- func (self Logger) Error(i ...any)
- func (self Logger) Errorf(format string, i ...any)
- func (self Logger) Fatal(i ...any)
- func (self Logger) Fatalf(format string, i ...any)
- func (self Logger) Flush(ctx context.Context) error
- func (self *Logger) Header() string
- func (self Logger) Info(i ...any)
- func (self Logger) Infof(format string, i ...any)
- func (self Logger) Level() Level
- func (self Logger) Logger() *zerolog.Logger
- func (self Logger) Output() io.Writer
- func (self Logger) Panic(i ...any)
- func (self Logger) Panicf(format string, i ...any)
- func (self Logger) Prefix() string
- func (self Logger) Print(i ...any)
- func (self Logger) Printf(format string, i ...any)
- func (self *Logger) SetHeader(h string)
- func (self *Logger) SetLevel(l Level)
- func (self *Logger) SetOutput(w io.Writer)
- func (self *Logger) SetPrefix(p string)
- func (self *Logger) SetVerbose(v bool)
- func (self Logger) Verbose() bool
- func (self Logger) Warn(i ...any)
- func (self Logger) Warnf(format string, i ...any)
- func (self Logger) WithLevel(level Level, i ...any)
- func (self Logger) WithLevelf(level Level, format string, i ...any)
- type LoggerConfig
- type Migrator
- func (self *Migrator) Apply(ctx context.Context, schemaVersion int) error
- func (self *Migrator) Assert(ctx context.Context, schemaVersion int) error
- func (self *Migrator) Close(ctx context.Context) error
- func (self *Migrator) Rollback(ctx context.Context, schemaVersion int) error
- func (self *Migrator) Version(ctx context.Context) (int, bool, error)
- type MigratorConfig
- type Observer
- func (self Observer) Close(ctx context.Context) error
- func (self Observer) Debug(_ context.Context, i ...any)
- func (self Observer) Debugf(_ context.Context, format string, i ...any)
- func (self Observer) Error(ctx context.Context, i ...any)
- func (self Observer) Errorf(ctx context.Context, format string, i ...any)
- func (self Observer) Fatal(ctx context.Context, i ...any)
- func (self Observer) Fatalf(ctx context.Context, format string, i ...any)
- func (self Observer) Flush(ctx context.Context) error
- func (self Observer) GetTrace(ctx context.Context) string
- func (self Observer) Info(_ context.Context, i ...any)
- func (self Observer) Infof(_ context.Context, format string, i ...any)
- func (self Observer) Panic(ctx context.Context, i ...any)
- func (self Observer) Panicf(ctx context.Context, format string, i ...any)
- func (self Observer) Print(_ context.Context, i ...any)
- func (self Observer) Printf(_ context.Context, format string, i ...any)
- func (self Observer) SetTrace(ctx context.Context, traceID string) context.Context
- func (self Observer) TraceClientRequest(ctx context.Context, request *http.Request) (context.Context, func())
- func (self Observer) TraceCommand(ctx context.Context, command *cli.Context) (context.Context, func())
- func (self Observer) TraceQuery(ctx context.Context, sql string, args ...any) (context.Context, func())
- func (self Observer) TraceServerRequest(ctx context.Context, request *http.Request) (context.Context, func())
- func (self Observer) TraceSpan(ctx context.Context, name ...string) (context.Context, func())
- func (self Observer) TraceTask(ctx context.Context, task *asynq.Task) (context.Context, func())
- func (self Observer) Warn(_ context.Context, i ...any)
- func (self Observer) Warnf(_ context.Context, format string, i ...any)
- func (self Observer) WithLevel(ctx context.Context, level Level, i ...any)
- func (self Observer) WithLevelf(ctx context.Context, level Level, format string, i ...any)
- type ObserverConfig
- type ObserverGilkConfig
- type ObserverSentryConfig
- type Renderer
- func (self *Renderer) Render(w io.Writer, name string, data any, _ echo.Context) error
- func (self *Renderer) RenderBytes(template string, data any) ([]byte, error)
- func (self *Renderer) RenderString(template string, data any) (string, error)
- func (self *Renderer) RenderWriter(w io.Writer, template string, data any) error
- type RendererConfig
- type RetryConfig
- type Runner
- type RunnerConfig
- type RunnerHandler
- type Serializer
- type SerializerConfig
- type Worker
- func (self *Worker) Close(ctx context.Context) error
- func (self *Worker) Register(task string, handler func(context.Context, *asynq.Task) error)
- func (self *Worker) Run(ctx context.Context) error
- func (self *Worker) Schedule(task string, params any, cron string, options ...asynq.Option)
- func (self *Worker) Use(middleware ...asynq.MiddlewareFunc)
- type WorkerConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrCacheGeneric = errors.New("cache failed") ErrCacheTimedOut = errors.New("cache timed out") ErrCacheUnhealthy = errors.New("cache unhealthy") ErrCacheMiss = errors.New("cache key not found") )
View Source
var ( ErrDatabaseGeneric = errors.New("database failed") ErrDatabaseTimedOut = errors.New("database timed out") ErrDatabaseUnhealthy = errors.New("database unhealthy") ErrDatabaseTransactionFailed = errors.New("database transaction failed") ErrDatabaseNoRows = errors.New("database no rows in result set") ErrDatabaseIntegrityViolation = errors.New("database integrity constraint violation") ErrDatabaseUnexpectedEffect = errors.New("database affected %d out of %d expected rows") )
View Source
var ( ErrEnqueuerGeneric = errors.New("enqueuer failed") ErrEnqueuerTimedOut = errors.New("enqueuer timed out") )
View Source
var ( ErrHTTPClientGeneric = errors.New("http client failed") ErrHTTPClientTimedOut = errors.New("http client timed out") ErrHTTPClientBadStatus = errors.New("http client bad status (%d)") ErrHTTPClientRateLimited = errors.New("http client rate limited (%d)") )
View Source
var ( ErrHTTPServerGeneric = errors.New("http server failed") ErrHTTPServerTimedOut = errors.New("http server timed out") )
View Source
var ( HTTPErrServerGeneric = NewHTTPError("ERR_SERVER_GENERIC", http.StatusInternalServerError) HTTPErrRequestTimeout = NewHTTPError("ERR_REQUEST_TIMEOUT", http.StatusGatewayTimeout) HTTPErrClientGeneric = NewHTTPError("ERR_CLIENT_GENERIC", http.StatusBadRequest) HTTPErrInvalidRequest = NewHTTPError("ERR_INVALID_REQUEST", http.StatusBadRequest) HTTPErrNotFound = NewHTTPError("ERR_NOT_FOUND", http.StatusNotFound) )
View Source
var ( ErrLoggerGeneric = errors.New("logger failed") ErrLoggerTimedOut = errors.New("logger timed out") )
View Source
var ( ErrMigratorGeneric = errors.New("migrator failed") ErrMigratorTimedOut = errors.New("migrator timed out") )
View Source
var ( ErrObserverGeneric = errors.New("observer failed") ErrObserverTimedOut = errors.New("observer timed out") )
View Source
var ( ErrRunnerGeneric = errors.New("runner failed") ErrRunnerTimedOut = errors.New("runner timed out") )
View Source
var ( ErrWorkerGeneric = errors.New("worker failed") ErrWorkerTimedOut = errors.New("worker timed out") )
View Source
var (
ErrBinderGeneric = errors.New("binder failed")
)
View Source
var (
ErrErrorHandlerGeneric = errors.New("error handler failed")
)
View Source
var (
ErrLocalizerGeneric = errors.New("localizer failed")
)
View Source
var (
ErrRendererGeneric = errors.New("renderer failed")
)
View Source
var (
ErrSerializerGeneric = errors.New("serializer failed")
)
Functions ¶
This section is empty.
Types ¶
type Binder ¶
type Binder struct {
// contains filtered or unexported fields
}
func NewBinder ¶
func NewBinder(observer *Observer, config BinderConfig) *Binder
type BinderConfig ¶
type BinderConfig struct { }
type Cache ¶
type Cache struct {
// contains filtered or unexported fields
}
func NewCache ¶
func NewCache(ctx context.Context, observer *Observer, config CacheConfig, retry ...RetryConfig) (*Cache, error)
type CacheConfig ¶
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
func NewDatabase ¶
func NewDatabase(ctx context.Context, observer *Observer, config DatabaseConfig, retry ...RetryConfig) (*Database, error)
func (*Database) Transaction ¶
type DatabaseConfig ¶
type DatabaseConfig struct { Host string Port int SSLMode string User string Password string Database string Service string MinConns *int MaxConns *int MaxConnIdleTime *time.Duration MaxConnLifeTime *time.Duration DialTimeout *time.Duration StatementTimeout *time.Duration DefaultIsolationLevel *IsolationLevel }
type Enqueuer ¶ added in v0.8.0
type Enqueuer struct {
// contains filtered or unexported fields
}
func NewEnqueuer ¶ added in v0.8.0
func NewEnqueuer(observer *Observer, config EnqueuerConfig) *Enqueuer
type EnqueuerConfig ¶ added in v0.8.0
type Environment ¶ added in v0.4.0
type Environment string
var ( EnvDevelopment Environment = "dev" EnvIntegration Environment = "ci" EnvProduction Environment = "prod" )
type ErrorHandler ¶ added in v0.16.0
type ErrorHandler struct {
// contains filtered or unexported fields
}
func NewErrorHandler ¶ added in v0.16.0
func NewErrorHandler(observer *Observer, config ErrorHandlerConfig) *ErrorHandler
func (*ErrorHandler) HandleCommand ¶ added in v0.16.0
func (self *ErrorHandler) HandleCommand(next RunnerHandler) RunnerHandler
func (*ErrorHandler) HandleRequest ¶ added in v0.16.0
func (self *ErrorHandler) HandleRequest(err error, ctx echo.Context)
func (*ErrorHandler) HandleTask ¶ added in v0.16.0
type ErrorHandlerConfig ¶ added in v0.16.0
type ErrorHandlerConfig struct { Environment Environment MinStatusCodeToLog *int }
type HTTPClient ¶ added in v0.16.0
type HTTPClient struct {
// contains filtered or unexported fields
}
func NewHTTPClient ¶ added in v0.16.0
func NewHTTPClient(observer *Observer, config HTTPClientConfig) *HTTPClient
func (*HTTPClient) Close ¶ added in v0.16.0
func (self *HTTPClient) Close(ctx context.Context) error
type HTTPClientConfig ¶ added in v0.16.0
type HTTPError ¶ added in v0.16.0
type HTTPError struct {
// contains filtered or unexported fields
}
func NewHTTPError ¶ added in v0.16.0
func (HTTPError) MarshalJSON ¶ added in v0.16.0
func (HTTPError) MarshalText ¶ added in v0.16.0
type HTTPServer ¶ added in v0.16.0
type HTTPServer struct {
// contains filtered or unexported fields
}
func NewHTTPServer ¶ added in v0.16.0
func NewHTTPServer(observer *Observer, serializer *Serializer, binder *Binder, renderer *Renderer, errorHandler *ErrorHandler, config HTTPServerConfig) *HTTPServer
func (*HTTPServer) Close ¶ added in v0.16.0
func (self *HTTPServer) Close(ctx context.Context) error
func (*HTTPServer) Default ¶ added in v0.16.0
func (self *HTTPServer) Default(middleware ...echo.MiddlewareFunc) *echo.Group
func (*HTTPServer) Host ¶ added in v0.16.0
func (self *HTTPServer) Host(host string, middleware ...echo.MiddlewareFunc) *echo.Group
func (*HTTPServer) Use ¶ added in v0.16.0
func (self *HTTPServer) Use(middleware ...echo.MiddlewareFunc)
type HTTPServerConfig ¶ added in v0.16.0
type HTTPServerConfig struct { Environment Environment Port int RequestHeaderMaxSize *int RequestBodyMaxSize *int RequestFileMaxSize *int RequestFilePattern *string RequestKeepAliveTimeout *time.Duration RequestReadTimeout *time.Duration RequestReadHeaderTimeout *time.Duration RequestIPExtractor *func(*http.Request) string ResponseWriteTimeout *time.Duration }
type IsolationLevel ¶ added in v0.16.0
type IsolationLevel int
var ( IsoLvlReadUncommitted IsolationLevel = 0 IsoLvlReadCommitted IsolationLevel = 1 IsoLvlRepeatableRead IsolationLevel = 2 IsoLvlSerializable IsolationLevel = 3 )
type Localizer ¶
type Localizer struct {
// contains filtered or unexported fields
}
func NewLocalizer ¶
func NewLocalizer(observer *Observer, config LocalizerConfig) (*Localizer, error)
type LocalizerConfig ¶
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
func NewLogger ¶
func NewLogger(config LoggerConfig) *Logger
func (*Logger) SetVerbose ¶
type LoggerConfig ¶
type Migrator ¶
type Migrator struct {
// contains filtered or unexported fields
}
func NewMigrator ¶
func NewMigrator(ctx context.Context, observer *Observer, config MigratorConfig, retry ...RetryConfig) (*Migrator, error)
type MigratorConfig ¶
type Observer ¶
type Observer struct { Logger // contains filtered or unexported fields }
func NewObserver ¶
func NewObserver(ctx context.Context, config ObserverConfig, retry ...RetryConfig) (*Observer, error)
func (Observer) TraceClientRequest ¶ added in v0.16.0
func (Observer) TraceCommand ¶ added in v0.16.0
func (Observer) TraceQuery ¶
func (Observer) TraceServerRequest ¶ added in v0.16.0
type ObserverConfig ¶
type ObserverConfig struct { Environment Environment Release string Service string Level Level Sentry *ObserverSentryConfig Gilk *ObserverGilkConfig }
type ObserverGilkConfig ¶
type ObserverGilkConfig struct {
Port int
}
type ObserverSentryConfig ¶
type ObserverSentryConfig struct {
Dsn string
}
type Renderer ¶
type Renderer struct {
// contains filtered or unexported fields
}
func NewRenderer ¶
func NewRenderer(observer *Observer, config RendererConfig) (*Renderer, error)
func (*Renderer) RenderBytes ¶
func (*Renderer) RenderString ¶
type RendererConfig ¶
type RetryConfig ¶ added in v0.16.0
type Runner ¶ added in v0.16.0
type Runner struct {
// contains filtered or unexported fields
}
func NewRunner ¶ added in v0.16.0
func NewRunner(observer *Observer, errorHandler *ErrorHandler, config RunnerConfig) *Runner
func (*Runner) Register ¶ added in v0.16.0
func (self *Runner) Register(command string, handler RunnerHandler, args any, description ...string)
func (*Runner) Use ¶ added in v0.16.0
func (self *Runner) Use(middleware ...func(RunnerHandler) RunnerHandler)
type RunnerConfig ¶ added in v0.16.0
type Serializer ¶
type Serializer struct {
// contains filtered or unexported fields
}
func NewSerializer ¶
func NewSerializer(observer *Observer, config SerializerConfig) *Serializer
func (*Serializer) Deserialize ¶
func (self *Serializer) Deserialize(c echo.Context, i any) error
type SerializerConfig ¶
type SerializerConfig struct { }
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
func NewWorker ¶ added in v0.8.0
func NewWorker(observer *Observer, errorHandler *ErrorHandler, config WorkerConfig) *Worker
func (*Worker) Use ¶ added in v0.8.0
func (self *Worker) Use(middleware ...asynq.MiddlewareFunc)
type WorkerConfig ¶ added in v0.8.0
type WorkerConfig struct { Queues map[string]int Concurrency *int StrictPriority *bool StopTimeout *time.Duration TimeZone *time.Location ScheduleDefaultRetry *int CacheHost string CachePort int CacheSSLMode bool CachePassword string CacheMaxConns *int CacheReadTimeout *time.Duration CacheWriteTimeout *time.Duration CacheDialTimeout *time.Duration }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.