优化结构
This commit is contained in:
+21
-10
@@ -4,17 +4,21 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
systemrouter "kra/internal/server/router"
|
||||
systemworker "kra/internal/worker"
|
||||
paymentmodule "kra/internal/modules/payment"
|
||||
systemmodule "kra/internal/modules/system"
|
||||
"kra/pkg/module"
|
||||
platformtask "kra/pkg/task"
|
||||
)
|
||||
|
||||
// Catalog lists the business modules enabled in this binary. Adding an order
|
||||
// module means adding one Definition here; system initialization and runtime
|
||||
// code consume the catalog without knowing that module's implementation.
|
||||
// Catalog lists the business modules enabled in this binary. Static module
|
||||
// contributions (migrations, admin metadata, default tasks) enter through a
|
||||
// Definition; runtime routes and dependency-bearing task contributors still
|
||||
// need explicit wiring below.
|
||||
func Catalog() module.Catalog {
|
||||
return module.Catalog{Definitions: []module.Definition{Definition()}}
|
||||
return module.Catalog{Definitions: []module.Definition{
|
||||
systemmodule.Definition(),
|
||||
paymentmodule.Definition(),
|
||||
}}
|
||||
}
|
||||
|
||||
// TaskRegistry builds the process-wide registry from dependency-free module
|
||||
@@ -26,8 +30,15 @@ func TaskRegistry(catalog module.Catalog) *platformtask.Registry {
|
||||
return registry
|
||||
}
|
||||
|
||||
// Runtime composes HTTP route contributors from the enabled modules.
|
||||
func Runtime(systemRoutes *systemrouter.Routes, systemTasks *systemworker.TaskMethods, registry *platformtask.Registry) *module.Runtime {
|
||||
platformtask.Apply(registry, systemTasks)
|
||||
return module.NewRuntime(systemRoutes)
|
||||
// RuntimeContributions groups runtime objects that need constructed
|
||||
// dependencies. The binary composition root supplies the concrete modules.
|
||||
type RuntimeContributions struct {
|
||||
Routes []module.RouteRegistrar
|
||||
Tasks []platformtask.Contributor
|
||||
}
|
||||
|
||||
// Runtime activates dependency-bearing tasks and composes module routes.
|
||||
func Runtime(contributions RuntimeContributions, registry *platformtask.Registry) *module.Runtime {
|
||||
platformtask.Apply(registry, contributions.Tasks...)
|
||||
return module.NewRuntime(contributions.Routes...)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user