Remove jsonBindings option. Only add ipc in debug mode.

This commit is contained in:
Lea Anthony
2023-08-12 14:57:01 +10:00
parent 1059e36b52
commit d1d0105276
3 changed files with 16 additions and 23 deletions
+1 -2
View File
@@ -77,8 +77,7 @@ func New(appOptions Options) *App {
Middleware: assetserver.Middleware(appOptions.Assets.Middleware),
}
// TODO ServingFrom disk?
srv, err := assetserver.NewAssetServer("", opts, false, nil, wailsruntime.RuntimeAssetsBundle)
srv, err := assetserver.NewAssetServer(opts, false, nil, wailsruntime.RuntimeAssetsBundle, isDebugMode())
if err != nil {
result.fatal(err.Error())
}
+12 -16
View File
@@ -32,13 +32,13 @@ type RuntimeHandler interface {
type AssetServer struct {
handler http.Handler
runtimeJS []byte
debug bool
ipcJS func(*http.Request) []byte
logger Logger
runtime RuntimeAssets
servingFromDisk bool
appendSpinnerToBody bool
servingFromDisk bool
// Use http based runtime
runtimeHandler RuntimeHandler
@@ -55,24 +55,17 @@ type AssetServer struct {
assetServerWebView
}
func NewAssetServerMainPage(bindingsJSON string, options *Options, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
return NewAssetServer(bindingsJSON, options, servingFromDisk, logger, runtime)
}
func NewAssetServer(bindingsJSON string, options *Options, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
func NewAssetServer(options *Options, servingFromDisk bool, logger Logger, runtime RuntimeAssets, debug bool) (*AssetServer, error) {
handler, err := NewAssetHandler(options, logger)
if err != nil {
return nil, err
}
return NewAssetServerWithHandler(handler, bindingsJSON, servingFromDisk, logger, runtime)
return NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, debug)
}
func NewAssetServerWithHandler(handler http.Handler, bindingsJSON string, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
func NewAssetServerWithHandler(handler http.Handler, servingFromDisk bool, logger Logger, runtime RuntimeAssets, debug bool) (*AssetServer, error) {
var buffer bytes.Buffer
if bindingsJSON != "" {
buffer.WriteString(`window.wailsbindings='` + bindingsJSON + `';` + "\n")
}
buffer.Write(runtime.RuntimeDesktopJS())
result := &AssetServer{
@@ -86,6 +79,7 @@ func NewAssetServerWithHandler(handler http.Handler, bindingsJSON string, servin
servingFromDisk: servingFromDisk,
logger: logger,
runtime: runtime,
debug: debug,
}
return result, nil
@@ -122,7 +116,7 @@ func (d *AssetServer) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
case "", "/", "/index.html":
recorder := httptest.NewRecorder()
d.handler.ServeHTTP(recorder, req)
for k, v := range recorder.HeaderMap {
for k, v := range recorder.Result().Header {
header[k] = v
}
@@ -190,7 +184,7 @@ func (d *AssetServer) processIndexHTML(indexHTML []byte) ([]byte, error) {
return nil, err
}
if d.appendSpinnerToBody {
if d.debug {
err = appendSpinnerToBody(htmlNode)
if err != nil {
return nil, err
@@ -201,8 +195,10 @@ func (d *AssetServer) processIndexHTML(indexHTML []byte) ([]byte, error) {
return nil, err
}
if err := insertScriptInHead(htmlNode, ipcJSPath); err != nil {
return nil, err
if d.debug {
if err := insertScriptInHead(htmlNode, ipcJSPath); err != nil {
return nil, err
}
}
// Inject plugins
+3 -5
View File
@@ -1,5 +1,4 @@
//go:build dev
// +build dev
//go:build !production
package assetserver
@@ -13,13 +12,12 @@ The assetserver for the dev mode.
Depending on the UserAgent it injects a websocket based IPC script into `index.html` or the default desktop IPC. The
default desktop IPC is injected when the webview accesses the devserver.
*/
func NewDevAssetServer(handler http.Handler, bindingsJSON string, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
result, err := NewAssetServerWithHandler(handler, bindingsJSON, servingFromDisk, logger, runtime)
func NewDevAssetServer(handler http.Handler, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
result, err := NewAssetServerWithHandler(handler, servingFromDisk, logger, runtime, true)
if err != nil {
return nil, err
}
result.appendSpinnerToBody = true
result.ipcJS = func(req *http.Request) []byte {
if strings.Contains(req.UserAgent(), WailsUserAgentValue) {
return runtime.DesktopIPC()