abstractions

package module
v1.2.7 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2026 License: Apache-2.0 Imports: 2 Imported by: 1

README

abstractions

Набор интерфейсов, через которые компоненты Sudzekai Web OS взаимодействуют друг с другом без жесткой зависимости от конкретных реализаций.

Установка

go get github.com/sudzekai-web-os/abstractions

Основные интерфейсы

  • IConfiguration — чтение и настройка значений конфигурации.
  • IExecutor — выполнение команд и команд в указанной директории.
  • IHandlersRegistry — регистрация HTTP-маршрутов, middleware и фильтров ответов.
  • ILogger и ILoggerFactory — логирование и создание именованных логгеров.
  • IModule — контракт динамического модуля: имя, версия, описание и инициализация.
  • IModulesLoader — загрузка модулей и получение списка загруженных модулей.
  • IServer — запуск, остановка и настройка HTTP-сервера.

Пакет использует типы из github.com/sudzekai-web-os/types для результатов команд, HTTP-обработчиков и middleware.

Пример модуля

Модуль должен экспортировать переменную Module, реализующую IModule:

var Module abstractions.IModule = myModule{}

Метод Initialize получает реестр обработчиков, фабрику логгеров и исполнитель команд.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type IConfiguration

type IConfiguration interface {
	GetString(key string) *string
	GetBool(key string) *bool
	GetInt(key string) *int

	GetValue(key string) any

	GetOptions() map[string]func() any
}

type IConfigurationBuilder added in v1.2.5

type IConfigurationBuilder interface {
	AddConfigurationFile(fileName string) IConfigurationBuilder
	AddFlag(flag IFlag) IConfigurationBuilder

	Parse() IConfigurationBuilder
	LoadConfigurationFile() IConfigurationBuilder

	GetConfiguration() IConfiguration
}

type IConfigurationConsumer added in v1.2.6

type IConfigurationConsumer interface {
	AddConfiguration(
		configuration IConfiguration,
	)
}

type IExecutor

type IExecutor interface {
	Execute(command string, args ...string) types.CommandResult
	ExecuteInDirectory(directoryPath string, command string, args ...string) types.CommandResult
	ExecuteWithInput(input, command string, args ...string) types.CommandResult
}

type IExecutorConsumer added in v1.2.0

type IExecutorConsumer interface {
	AddExecutor(
		executor IExecutor,
	)
}

type IFlag added in v1.2.5

type IFlag interface {
	GetName() string
	GetBindProperty() string

	GetValue() any
	IsVisited() bool

	SetIsVisited(bool)

	SetValueGetter(func() any)

	GetUsage() string
}

type IHandlersRegistry

type IHandlersRegistry interface {
	AddHandler(
		pattern string,
		hnd func(r *http.Request) (result types.HandlerResult),
	) IHandlersRegistry

	AddProtectedHandler(
		pattern string,
		hnd func(r *http.Request) (result types.HandlerResult),
		roles []string,
	) IHandlersRegistry

	AddNoFilterHandler(
		pattern string,
		hnd http.HandlerFunc,
	) IHandlersRegistry

	AddProtectedNoFilterHandler(
		pattern string,
		hnd http.HandlerFunc,
		roles []string,
	) IHandlersRegistry

	AddMiddleware(
		pos int,
		middleware types.Middleware,
	) IHandlersRegistry

	SetJwtMiddleware(jwt types.JwtMiddleware) IHandlersRegistry

	SetResultFilter(filter types.ResultFilter) IHandlersRegistry

	GetRoutes() []string
	ClearRoutes()
}

type IHandlersRegistryConsumer added in v1.2.0

type IHandlersRegistryConsumer interface {
	AddHandlersRegistry(
		registry IHandlersRegistry,
	)
}

type ILogger

type ILogger interface {
	Log(level types.LogLevel, format string, args ...any)
	LogDebug(format string, args ...any)
	LogInformation(format string, args ...any)
	LogWarning(format string, args ...any)
	LogError(format string, args ...any)
	LogCritical(format string, args ...any)
}

type ILoggerFactory

type ILoggerFactory interface {
	SetMinLevel(types.LogLevel)
	GetMinLevel() types.LogLevel

	AddWriter(ILoggerWriter) ILoggerFactory
	GetWriters() []ILoggerWriter

	SetPreCategory(string) ILoggerFactory
	GetPreCategory() string

	SetSubCategory(string) ILoggerFactory
	GetSubCategory() string

	Copy() ILoggerFactory

	NewLogger(string) ILogger
}

type ILoggerFactoryConsumer added in v1.2.0

type ILoggerFactoryConsumer interface {
	AddLoggerFactory(
		loggerFactory ILoggerFactory,
	)
}

type ILoggerWriter added in v1.2.2

type ILoggerWriter interface {
	Write(types.LogEntry)
	WriteBatch([]types.LogEntry)
}

type IModule

type IModule interface {
	Name() string
	Version() string
	Description() string
	Start() error
}

type IServer

type IServer interface {
	SetHost(host string)
	SetPort(port int)

	Start()
	Stop()
	WaitForShutdown()

	IsListening() bool

	GetRegistry() IHandlersRegistry
}

Jump to

Keyboard shortcuts

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