package module import ( "context" "forge.cadoles.com/arcad/edge/pkg/app" "github.com/dop251/goja" "github.com/pkg/errors" "gitlab.com/wpetit/goweb/logger" ) type LifecycleModule struct{} func (m *LifecycleModule) Name() string { return "lifecycle" } func (m *LifecycleModule) Export(export *goja.Object) { } func (m *LifecycleModule) OnInit(ctx context.Context, rt *goja.Runtime) (err error) { _, ok := goja.AssertFunction(rt.Get("onInit")) if !ok { logger.Warn(ctx, "could not find onInit() function") return nil } if _, err := rt.RunString("setTimeout(onInit, 0)"); err != nil { return errors.WithStack(err) } return nil } func LifecycleModuleFactory() app.ServerModuleFactory { return func(server *app.Server) app.ServerModule { module := &LifecycleModule{} return module } } var _ app.InitializableModule = &LifecycleModule{}