5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-03 05:19:11 +08:00
wails/v2/pkg/assetserver/assetserver_dev.go
2023-01-08 11:25:21 +01:00

33 lines
897 B
Go

//go:build dev
// +build dev
package assetserver
import (
"net/http"
"strings"
)
/*
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, wsHandler http.Handler, bindingsJSON string, servingFromDisk bool, logger Logger, runtime RuntimeAssets) (*AssetServer, error) {
result, err := NewAssetServerWithHandler(handler, bindingsJSON, servingFromDisk, logger, runtime)
if err != nil {
return nil, err
}
result.wsHandler = wsHandler
result.appendSpinnerToBody = true
result.ipcJS = func(req *http.Request) []byte {
if strings.Contains(req.UserAgent(), WailsUserAgentValue) {
return runtime.DesktopIPC()
}
return runtime.WebsocketIPC()
}
return result, nil
}