From 58dc917fb7e8fe8f99801f4e0ecf6ea44dc22010 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Thu, 26 Aug 2021 20:38:03 +1000 Subject: [PATCH] [windows-x] Startup/Shutdown -> OnStartup/OnShutdown --- .../commands/generate/template/base/app.tmpl.go | 2 +- .../generate/template/base/main.tmpl.go | 9 +++------ .../templates/templates/svelte/app.tmpl.go | 11 +++++------ .../templates/templates/svelte/main.tmpl.go | 9 +++------ .../templates/templates/vanilla/app.tmpl.go | 2 +- .../templates/templates/vanilla/main.tmpl.go | 9 +++------ v2/internal/app/desktop.go | 11 ++++++----- v2/internal/app/dev.go | 12 +++++++----- v2/internal/app/server.go | 7 ++++--- v2/internal/appng/app_dev.go | 12 ++++++------ v2/internal/appng/app_production.go | 17 +++++++++-------- .../frontend/assetserver/assetserver_desktop.go | 2 +- v2/internal/subsystem/event.go | 2 +- v2/internal/subsystem/runtime.go | 4 ++-- v2/pkg/commands/build/base.go | 4 ++++ v2/pkg/options/options.go | 5 +++-- 16 files changed, 59 insertions(+), 59 deletions(-) diff --git a/v2/cmd/wails/internal/commands/generate/template/base/app.tmpl.go b/v2/cmd/wails/internal/commands/generate/template/base/app.tmpl.go index 4f570dd37..cc4fb823e 100644 --- a/v2/cmd/wails/internal/commands/generate/template/base/app.tmpl.go +++ b/v2/cmd/wails/internal/commands/generate/template/base/app.tmpl.go @@ -25,7 +25,7 @@ func (b *App) startup(ctx context.Context) { } // shutdown is called at application termination -func (b *App) shutdown() { +func (b *App) shutdown(ctx context.Context) { // Perform your teardown here } diff --git a/v2/cmd/wails/internal/commands/generate/template/base/main.tmpl.go b/v2/cmd/wails/internal/commands/generate/template/base/main.tmpl.go index 6218fdf4b..c945d6b8a 100644 --- a/v2/cmd/wails/internal/commands/generate/template/base/main.tmpl.go +++ b/v2/cmd/wails/internal/commands/generate/template/base/main.tmpl.go @@ -7,7 +7,6 @@ import ( "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/logger" - "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/mac" ) @@ -30,7 +29,6 @@ func main() { Frameless: false, StartHidden: false, HideWindowOnClose: false, - DevTools: false, RGBA: 0x000000FF, Windows: &windows.Options{ WebviewIsTransparent: true, @@ -41,11 +39,10 @@ func main() { WebviewIsTransparent: true, WindowBackgroundIsTranslucent: true, TitleBar: mac.TitleBarHiddenInset(), - Menu: menu.DefaultMacMenu(), }, - LogLevel: logger.DEBUG, - Startup: app.startup, - Shutdown: app.shutdown, + LogLevel: logger.DEBUG, + OnStartup: app.startup, + OnShutdown: app.shutdown, Bind: []interface{}{ app, }, diff --git a/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/app.tmpl.go b/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/app.tmpl.go index 7c028c5c3..fab5aa32c 100644 --- a/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/app.tmpl.go +++ b/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/app.tmpl.go @@ -1,14 +1,13 @@ package main import ( + "context" "fmt" - - "github.com/wailsapp/wails/v2" ) // App application struct type App struct { - runtime *wails.Runtime + ctx context.Context } // NewApp creates a new App application struct @@ -17,13 +16,13 @@ func NewApp() *App { } // startup is called at application startup -func (b *App) startup(runtime *wails.Runtime) { +func (b *App) startup(ctx context.Context) { // Perform your setup here - b.runtime = runtime + b.ctx = ctx } // shutdown is called at application termination -func (b *App) shutdown() { +func (b *App) shutdown(ctx context.Context) { // Perform your teardown here } diff --git a/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/main.tmpl.go b/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/main.tmpl.go index 6218fdf4b..c945d6b8a 100644 --- a/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/main.tmpl.go +++ b/v2/cmd/wails/internal/commands/initialise/templates/templates/svelte/main.tmpl.go @@ -7,7 +7,6 @@ import ( "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/logger" - "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/mac" ) @@ -30,7 +29,6 @@ func main() { Frameless: false, StartHidden: false, HideWindowOnClose: false, - DevTools: false, RGBA: 0x000000FF, Windows: &windows.Options{ WebviewIsTransparent: true, @@ -41,11 +39,10 @@ func main() { WebviewIsTransparent: true, WindowBackgroundIsTranslucent: true, TitleBar: mac.TitleBarHiddenInset(), - Menu: menu.DefaultMacMenu(), }, - LogLevel: logger.DEBUG, - Startup: app.startup, - Shutdown: app.shutdown, + LogLevel: logger.DEBUG, + OnStartup: app.startup, + OnShutdown: app.shutdown, Bind: []interface{}{ app, }, diff --git a/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/app.tmpl.go b/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/app.tmpl.go index 3675fa0b5..c4e363623 100644 --- a/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/app.tmpl.go +++ b/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/app.tmpl.go @@ -22,7 +22,7 @@ func (b *App) startup(ctx context.Context) { } // shutdown is called at application termination -func (b *App) shutdown() { +func (b *App) shutdown(ctx context.Context) { // Perform your teardown here } diff --git a/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/main.tmpl.go b/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/main.tmpl.go index 6218fdf4b..c945d6b8a 100644 --- a/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/main.tmpl.go +++ b/v2/cmd/wails/internal/commands/initialise/templates/templates/vanilla/main.tmpl.go @@ -7,7 +7,6 @@ import ( "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/logger" - "github.com/wailsapp/wails/v2/pkg/menu" "github.com/wailsapp/wails/v2/pkg/options" "github.com/wailsapp/wails/v2/pkg/options/mac" ) @@ -30,7 +29,6 @@ func main() { Frameless: false, StartHidden: false, HideWindowOnClose: false, - DevTools: false, RGBA: 0x000000FF, Windows: &windows.Options{ WebviewIsTransparent: true, @@ -41,11 +39,10 @@ func main() { WebviewIsTransparent: true, WindowBackgroundIsTranslucent: true, TitleBar: mac.TitleBarHiddenInset(), - Menu: menu.DefaultMacMenu(), }, - LogLevel: logger.DEBUG, - Startup: app.startup, - Shutdown: app.shutdown, + LogLevel: logger.DEBUG, + OnStartup: app.startup, + OnShutdown: app.shutdown, Bind: []interface{}{ app, }, diff --git a/v2/internal/app/desktop.go b/v2/internal/app/desktop.go index 528383813..b27f92919 100644 --- a/v2/internal/app/desktop.go +++ b/v2/internal/app/desktop.go @@ -1,3 +1,4 @@ +//go:build desktop && !server // +build desktop,!server package app @@ -45,7 +46,7 @@ type App struct { // This is our binding DB bindings *binding.Bindings - // Startup/Shutdown + // OnStartup/OnShutdown startupCallback func(ctx context.Context) shutdownCallback func() } @@ -82,7 +83,7 @@ func CreateApp(appoptions *options.App) (*App, error) { window := ffenestri.NewApplicationWithConfig(appoptions, myLogger, menuManager) // Create binding exemptions - Ugly hack. There must be a better way - bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown} + bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady} result := &App{ appType: "desktop", @@ -91,8 +92,8 @@ func CreateApp(appoptions *options.App) (*App, error) { logger: myLogger, bindings: binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions), menuManager: menuManager, - startupCallback: appoptions.Startup, - shutdownCallback: appoptions.Shutdown, + startupCallback: appoptions.OnStartup, + shutdownCallback: appoptions.OnShutdown, } result.options = appoptions @@ -246,7 +247,7 @@ func (a *App) Run() error { return err } - // Shutdown callback + // OnShutdown callback if a.shutdownCallback != nil { a.shutdownCallback() } diff --git a/v2/internal/app/dev.go b/v2/internal/app/dev.go index b61fb4bd9..dcbe59e42 100644 --- a/v2/internal/app/dev.go +++ b/v2/internal/app/dev.go @@ -1,9 +1,11 @@ +//go:build dev // +build dev package app import ( "context" + "github.com/wailsapp/wails/runtime" "sync" "github.com/wailsapp/wails/v2/internal/bridge" @@ -49,7 +51,7 @@ type App struct { loglevelStore *runtime.Store appconfigStore *runtime.Store - // Startup/Shutdown + // OnStartup/OnShutdown startupCallback func(*runtime.Runtime) shutdownCallback func() @@ -85,15 +87,15 @@ func CreateApp(appoptions *options.App) (*App, error) { } // Create binding exemptions - Ugly hack. There must be a better way - bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown} + bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady} result := &App{ appType: "dev", bindings: binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions), logger: myLogger, servicebus: servicebus.New(myLogger), - startupCallback: appoptions.Startup, - shutdownCallback: appoptions.Shutdown, + startupCallback: appoptions.OnStartup, + shutdownCallback: appoptions.OnShutdown, bridge: bridge.NewBridge(myLogger), menuManager: menuManager, } @@ -235,7 +237,7 @@ func (a *App) Run() error { return err } - // Shutdown callback + // OnShutdown callback if a.shutdownCallback != nil { a.shutdownCallback() } diff --git a/v2/internal/app/server.go b/v2/internal/app/server.go index a624f63f7..06734f0ad 100644 --- a/v2/internal/app/server.go +++ b/v2/internal/app/server.go @@ -1,3 +1,4 @@ +//go:build server && !desktop // +build server,!desktop package app @@ -37,7 +38,7 @@ type App struct { debug bool - // Startup/Shutdown + // OnStartup/OnShutdown startupCallback func(ctx context.Context) shutdownCallback func() } @@ -58,8 +59,8 @@ func CreateApp(appoptions *options.App) (*App, error) { logger: myLogger, servicebus: servicebus.New(myLogger), webserver: webserver.NewWebServer(myLogger), - startupCallback: appoptions.Startup, - shutdownCallback: appoptions.Shutdown, + startupCallback: appoptions.OnStartup, + shutdownCallback: appoptions.OnShutdown, } // Initialise app diff --git a/v2/internal/appng/app_dev.go b/v2/internal/appng/app_dev.go index 9fc9ef104..6e7dc74b3 100644 --- a/v2/internal/appng/app_dev.go +++ b/v2/internal/appng/app_dev.go @@ -31,16 +31,16 @@ type App struct { // Indicates if the app is in debug mode debug bool - // Startup/Shutdown + // OnStartup/OnShutdown startupCallback func(ctx context.Context) - shutdownCallback func() + shutdownCallback func(ctx context.Context) ctx context.Context } func (a *App) Run() error { err := a.frontend.Run(a.ctx) if a.shutdownCallback != nil { - a.shutdownCallback() + a.shutdownCallback(a.ctx) } return err } @@ -95,7 +95,7 @@ func CreateApp(appoptions *options.App) (*App, error) { } // Create binding exemptions - Ugly hack. There must be a better way - bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown} + bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady} appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions) eventHandler := runtime.NewEvents(myLogger) ctx = context.WithValue(ctx, "events", eventHandler) @@ -112,8 +112,8 @@ func CreateApp(appoptions *options.App) (*App, error) { frontend: appFrontend, logger: myLogger, menuManager: menuManager, - startupCallback: appoptions.Startup, - shutdownCallback: appoptions.Shutdown, + startupCallback: appoptions.OnStartup, + shutdownCallback: appoptions.OnShutdown, debug: true, } diff --git a/v2/internal/appng/app_production.go b/v2/internal/appng/app_production.go index 1b06714c8..7e404d359 100644 --- a/v2/internal/appng/app_production.go +++ b/v2/internal/appng/app_production.go @@ -7,6 +7,7 @@ import ( "context" "github.com/wailsapp/wails/v2/internal/binding" "github.com/wailsapp/wails/v2/internal/frontend" + "github.com/wailsapp/wails/v2/internal/frontend/desktop" "github.com/wailsapp/wails/v2/internal/frontend/dispatcher" "github.com/wailsapp/wails/v2/internal/frontend/runtime" "github.com/wailsapp/wails/v2/internal/logger" @@ -27,16 +28,16 @@ type App struct { // Indicates if the app is in debug mode debug bool - // Startup/Shutdown + // OnStartup/OnShutdown startupCallback func(ctx context.Context) - shutdownCallback func() + shutdownCallback func(ctx context.Context) ctx context.Context } func (a *App) Run() error { err := a.frontend.Run(a.ctx) if a.shutdownCallback != nil { - a.shutdownCallback() + a.shutdownCallback(a.ctx) } return err } @@ -72,22 +73,22 @@ func CreateApp(appoptions *options.App) (*App, error) { } // Create binding exemptions - Ugly hack. There must be a better way - bindingExemptions := []interface{}{appoptions.Startup, appoptions.Shutdown} + bindingExemptions := []interface{}{appoptions.OnStartup, appoptions.OnShutdown, appoptions.OnDomReady} appBindings := binding.NewBindings(myLogger, appoptions.Bind, bindingExemptions) eventHandler := runtime.NewEvents(myLogger) ctx = context.WithValue(ctx, "events", eventHandler) messageDispatcher := dispatcher.NewDispatcher(myLogger, appBindings, eventHandler) - appFrontend := NewFrontend(appoptions, myLogger, appBindings, messageDispatcher, menuManager) - eventHandler.SetFrontend(appFrontend) + appFrontend := desktop.NewFrontend(ctx, appoptions, myLogger, appBindings, messageDispatcher) + eventHandler.AddFrontend(appFrontend) result := &App{ ctx: ctx, frontend: appFrontend, logger: myLogger, menuManager: menuManager, - startupCallback: appoptions.Startup, - shutdownCallback: appoptions.Shutdown, + startupCallback: appoptions.OnStartup, + shutdownCallback: appoptions.OnShutdown, debug: false, } diff --git a/v2/internal/frontend/assetserver/assetserver_desktop.go b/v2/internal/frontend/assetserver/assetserver_desktop.go index 36d6c77d2..23cb7254d 100644 --- a/v2/internal/frontend/assetserver/assetserver_desktop.go +++ b/v2/internal/frontend/assetserver/assetserver_desktop.go @@ -42,7 +42,7 @@ func NewDesktopAssetServer(ctx context.Context, assets embed.FS, bindingsJSON st var buffer bytes.Buffer buffer.WriteString(`window.wailsbindings='` + bindingsJSON + `';` + "\n") - buffer.Write(runtime.RuntimeDesktopJS) + buffer.Write(runtime.RuntimeJS) result.runtimeJS = buffer.Bytes() err := result.init(assets) return result, err diff --git a/v2/internal/subsystem/event.go b/v2/internal/subsystem/event.go index d1c318059..988bec7dd 100644 --- a/v2/internal/subsystem/event.go +++ b/v2/internal/subsystem/event.go @@ -84,7 +84,7 @@ func (e *Event) Start() error { // Spin off a go routine go func() { - defer e.logger.Trace("Shutdown") + defer e.logger.Trace("OnShutdown") for { select { case <-e.ctx.Done(): diff --git a/v2/internal/subsystem/runtime.go b/v2/internal/subsystem/runtime.go index 89a5639af..1719de96f 100644 --- a/v2/internal/subsystem/runtime.go +++ b/v2/internal/subsystem/runtime.go @@ -27,7 +27,7 @@ type Runtime struct { //ctx ctx context.Context - // Startup Hook + // OnStartup Hook startupOnce sync.Once // Service bus @@ -66,7 +66,7 @@ func (r *Runtime) Start() error { // Spin off a go routine go func() { - defer r.logger.Trace("Shutdown") + defer r.logger.Trace("OnShutdown") for { select { case hooksMessage := <-r.hooksChannel: diff --git a/v2/pkg/commands/build/base.go b/v2/pkg/commands/build/base.go index a6910a034..e1db5741c 100644 --- a/v2/pkg/commands/build/base.go +++ b/v2/pkg/commands/build/base.go @@ -222,6 +222,10 @@ func (b *BaseBuilder) CompileProject(options *Options) error { tags.Add(options.WebView2Strategy) } + if options.Mode == Production { + tags.Add("production") + } + tags.Deduplicate() // Add the output type build tag diff --git a/v2/pkg/options/options.go b/v2/pkg/options/options.go index a59c4ccb4..60170895c 100644 --- a/v2/pkg/options/options.go +++ b/v2/pkg/options/options.go @@ -32,8 +32,9 @@ type App struct { Menu *menu.Menu Logger logger.Logger `json:"-"` LogLevel logger.LogLevel - Startup func(ctx context.Context) `json:"-"` - Shutdown func() `json:"-"` + OnStartup func(ctx context.Context) `json:"-"` + OnDomReady func(ctx context.Context) `json:"-"` + OnShutdown func(ctx context.Context) `json:"-"` Bind []interface{} //ContextMenus []*menu.ContextMenu