Documentation
¶
Index ¶
- Constants
- Variables
- func WaitForPortListening(port string, timeout time.Duration, https bool) bool
- type Config
- type ServerHandler
- func (h *ServerHandler) Change(newValue string) error
- func (h *ServerHandler) CreateTemplateServer() error
- func (h *ServerHandler) Label() string
- func (h *ServerHandler) MainInputFileRelativePath() string
- func (h *ServerHandler) Name() string
- func (h *ServerHandler) NewFileEvent(fileName, extension, filePath, event string) error
- func (h *ServerHandler) RefreshUI()
- func (h *ServerHandler) RegisterRoutes(fn func(*http.ServeMux)) *ServerHandler
- func (h *ServerHandler) Restart() error
- func (h *ServerHandler) RestartServer() error
- func (h *ServerHandler) SetAppRootDir(dir string) *ServerHandler
- func (h *ServerHandler) SetCompileArgs(fn func() []string) *ServerHandler
- func (h *ServerHandler) SetDisableGlobalCleanup(disable bool) *ServerHandler
- func (h *ServerHandler) SetExitChan(ch chan bool) *ServerHandler
- func (h *ServerHandler) SetExternalServerMode(external bool) error
- func (h *ServerHandler) SetGitIgnoreAdd(fn func(string) error) *ServerHandler
- func (h *ServerHandler) SetHTTPS(enabled bool) *ServerHandler
- func (h *ServerHandler) SetLogger(fn func(...any)) *ServerHandler
- func (h *ServerHandler) SetMainInputFile(name string) *ServerHandler
- func (h *ServerHandler) SetOnExternalModeExecution(fn func(bool)) *ServerHandler
- func (h *ServerHandler) SetOpenBrowser(fn func(port string, https bool)) *ServerHandler
- func (h *ServerHandler) SetOutputDir(dir string) *ServerHandler
- func (h *ServerHandler) SetPort(port string) *ServerHandler
- func (h *ServerHandler) SetPublicDir(dir string) *ServerHandler
- func (h *ServerHandler) SetRunArgs(fn func() []string) *ServerHandler
- func (h *ServerHandler) SetSourceDir(dir string) *ServerHandler
- func (h *ServerHandler) SetStore(s Store) *ServerHandler
- func (h *ServerHandler) SetUI(ui UI) *ServerHandler
- func (h *ServerHandler) StartServer(wg *sync.WaitGroup)
- func (h *ServerHandler) StopServer() error
- func (h *ServerHandler) SupportedExtensions() []string
- func (h *ServerHandler) UnobservedFiles() []string
- func (h *ServerHandler) Value() string
- type ServerStrategy
- type Store
- type UI
Constants ¶
const ( StoreKeyExternalServer = "server_external_mode" EnvKeyServerPort = "SERVER_PORT" EnvKeyServerHttps = "SERVER_HTTPS" )
Variables ¶
var TestMode bool
TestMode is a global flag to indicate the server is running in a test environment. This is used to disable aggressive cleanups and other disruptive behaviors.
Functions ¶
Types ¶
type Config ¶
type Config struct {
AppRootDir string // e.g., /home/user/project (application root directory)
SourceDir string // directory location of main.go e.g., src/cmd/appserver (relative to AppRootDir)
OutputDir string // compilation and execution directory e.g., deploy/appserver (relative to AppRootDir)
PublicDir string // default public dir for generated server (e.g., src/web/public)
MainInputFile string // main input file name (default: "main.go", can be "server.go", etc.)
ArgumentsForCompilingServer func() []string // e.g., []string{"-X 'main.version=v1.0.0'"}
ArgumentsToRunServer func() []string // e.g., []string{"dev"}
AppPort string // e.g., 6060
Https bool // true if HTTPS is enabled
DisableGlobalCleanup bool // If true, disables global cleanup in gorun during restarts
Logger func(message ...any) // Logger function
ExitChan chan bool // Global channel to signal shutdown
OpenBrowser func(port string, https bool)
Store Store // Persistent storage for modes
UI UI // UI for refresh notifications
OnExternalModeExecution func(isExternal bool) // Called before StartServer to notify mode change
GitIgnoreAdd func(entry string) error // Callback to add entries to .gitignore
}
type ServerHandler ¶
type ServerHandler struct {
*Config
// contains filtered or unexported fields
}
func (*ServerHandler) Change ¶ added in v0.1.28
func (h *ServerHandler) Change(newValue string) error
Change implements HandlerEdit.Change
func (*ServerHandler) CreateTemplateServer ¶ added in v0.1.16
func (h *ServerHandler) CreateTemplateServer() error
CreateTemplateServer switches from Internal to External mode. It generates the server files (if not present), compiles, and runs them. This implements the transition from "Internal" to "External" mode.
func (*ServerHandler) Label ¶ added in v0.1.28
func (h *ServerHandler) Label() string
Label implements HandlerEdit.Label
func (*ServerHandler) MainInputFileRelativePath ¶
func (h *ServerHandler) MainInputFileRelativePath() string
MainInputFileRelativePath returns the path relative to AppRootDir (e.g., "src/cmd/appserver/main.go")
func (*ServerHandler) Name ¶ added in v0.1.21
func (h *ServerHandler) Name() string
func (*ServerHandler) NewFileEvent ¶
func (h *ServerHandler) NewFileEvent(fileName, extension, filePath, event string) error
event: create,write,remove,rename
func (*ServerHandler) RefreshUI ¶ added in v0.1.28
func (h *ServerHandler) RefreshUI()
func (*ServerHandler) RegisterRoutes ¶ added in v0.2.0
func (h *ServerHandler) RegisterRoutes(fn func(*http.ServeMux)) *ServerHandler
RegisterRoutes appends fn to the internal route list. Call before StartServer.
func (*ServerHandler) Restart ¶ added in v0.1.46
func (h *ServerHandler) Restart() error
Restart restarts the server. It delegates to the current strategy's Restart method.
func (*ServerHandler) RestartServer ¶
func (h *ServerHandler) RestartServer() error
func (*ServerHandler) SetAppRootDir ¶ added in v0.2.0
func (h *ServerHandler) SetAppRootDir(dir string) *ServerHandler
SetAppRootDir sets the application root directory
func (*ServerHandler) SetCompileArgs ¶ added in v0.2.0
func (h *ServerHandler) SetCompileArgs(fn func() []string) *ServerHandler
SetCompileArgs sets the arguments for compiling the server
func (*ServerHandler) SetDisableGlobalCleanup ¶ added in v0.2.0
func (h *ServerHandler) SetDisableGlobalCleanup(disable bool) *ServerHandler
SetDisableGlobalCleanup enables or disables global cleanup
func (*ServerHandler) SetExitChan ¶ added in v0.2.0
func (h *ServerHandler) SetExitChan(ch chan bool) *ServerHandler
SetExitChan sets the exit channel
func (*ServerHandler) SetExternalServerMode ¶ added in v0.1.19
func (h *ServerHandler) SetExternalServerMode(external bool) error
SetExternalServerMode switches between Internal and External server strategies. When switching to External, it also: 1. Generates server template files if they don't exist 2. Compiles the server 3. Starts the external process
func (*ServerHandler) SetGitIgnoreAdd ¶ added in v0.2.0
func (h *ServerHandler) SetGitIgnoreAdd(fn func(string) error) *ServerHandler
SetGitIgnoreAdd sets the callback to add entries to .gitignore
func (*ServerHandler) SetHTTPS ¶ added in v0.2.0
func (h *ServerHandler) SetHTTPS(enabled bool) *ServerHandler
SetHTTPS enables or disables HTTPS
func (*ServerHandler) SetLogger ¶ added in v0.2.0
func (h *ServerHandler) SetLogger(fn func(...any)) *ServerHandler
SetLogger sets the logger function
func (*ServerHandler) SetMainInputFile ¶ added in v0.2.0
func (h *ServerHandler) SetMainInputFile(name string) *ServerHandler
SetMainInputFile sets the main input file name
func (*ServerHandler) SetOnExternalModeExecution ¶ added in v0.2.0
func (h *ServerHandler) SetOnExternalModeExecution(fn func(bool)) *ServerHandler
SetOnExternalModeExecution sets the callback for external mode execution
func (*ServerHandler) SetOpenBrowser ¶ added in v0.2.0
func (h *ServerHandler) SetOpenBrowser(fn func(port string, https bool)) *ServerHandler
SetOpenBrowser sets the open browser function
func (*ServerHandler) SetOutputDir ¶ added in v0.2.0
func (h *ServerHandler) SetOutputDir(dir string) *ServerHandler
SetOutputDir sets the output directory relative to AppRootDir
func (*ServerHandler) SetPort ¶ added in v0.2.0
func (h *ServerHandler) SetPort(port string) *ServerHandler
SetPort sets the server port
func (*ServerHandler) SetPublicDir ¶ added in v0.2.0
func (h *ServerHandler) SetPublicDir(dir string) *ServerHandler
SetPublicDir sets the public directory
func (*ServerHandler) SetRunArgs ¶ added in v0.2.0
func (h *ServerHandler) SetRunArgs(fn func() []string) *ServerHandler
SetRunArgs sets the arguments for running the server
func (*ServerHandler) SetSourceDir ¶ added in v0.2.0
func (h *ServerHandler) SetSourceDir(dir string) *ServerHandler
SetSourceDir sets the source directory relative to AppRootDir
func (*ServerHandler) SetStore ¶ added in v0.2.0
func (h *ServerHandler) SetStore(s Store) *ServerHandler
SetStore sets the persistent store
func (*ServerHandler) SetUI ¶ added in v0.2.0
func (h *ServerHandler) SetUI(ui UI) *ServerHandler
SetUI sets the UI interface
func (*ServerHandler) StartServer ¶
func (h *ServerHandler) StartServer(wg *sync.WaitGroup)
StartServer initiates the server using the current strategy (In-Memory or External)
func (*ServerHandler) StopServer ¶ added in v0.1.24
func (h *ServerHandler) StopServer() error
StopServer stops the server and waits for the port to be released.
func (*ServerHandler) SupportedExtensions ¶
func (h *ServerHandler) SupportedExtensions() []string
func (*ServerHandler) UnobservedFiles ¶
func (h *ServerHandler) UnobservedFiles() []string
UnobservedFiles returns the list of files that should not be tracked by file watchers
func (*ServerHandler) Value ¶ added in v0.1.28
func (h *ServerHandler) Value() string
Value implements HandlerEdit.Value