refactor with improved developer ux in mind

- Most functions now live directly in the dbx package
- dbxp and dbxm are now ONLY the few functions that cannot be shared
This commit is contained in:
Elijah Duffy
2025-06-12 17:44:44 -07:00
parent 18e669101e
commit 32567471e1
7 changed files with 332 additions and 357 deletions

View File

@@ -0,0 +1,30 @@
package dbxshared
type Logger interface {
InitLogger()
}
type dialectString interface {
String() string
}
var loggerRegistry = make(map[string]Logger)
// RegisterLogger allows dialect-specific loggers to be registered.
func RegisterLogger(dialect dialectString, logger Logger) {
dialectStr := dialect.String()
if _, exists := loggerRegistry[dialectStr]; exists {
panic("Logger for dialect already registered: " + dialectStr)
}
loggerRegistry[dialectStr] = logger
}
// InitLogger initializes the logger for a specific dialect.
func InitLogger(dialect dialectString) {
dialectStr := dialect.String()
logger, exists := loggerRegistry[dialectStr]
if !exists {
panic("No logger registered for dialect: " + dialectStr)
}
logger.InitLogger()
}