5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-02 07:21:32 +08:00
wails/ipc_event.go
2019-01-08 07:58:46 +11:00

41 lines
871 B
Go

package wails
import (
"encoding/json"
)
type eventData struct {
Name string `json:"name"`
Data interface{} `json:"data"`
}
// Register the message handler
func init() {
messageProcessors["event"] = processEventData
}
// This processes the given event message
func processEventData(message *ipcMessage) (*ipcMessage, error) {
// TODO: Is it worth double checking this is actually an event message,
// even though that's done by the caller?
var payload eventData
// Decode event data
payloadMap := message.Payload.(map[string]interface{})
payload.Name = payloadMap["name"].(string)
// decode the payload data
var data []interface{}
err := json.Unmarshal([]byte(payloadMap["data"].(string)), &data)
if err != nil {
return nil, err
}
payload.Data = data
// Reassign payload to decoded data
message.Payload = &payload
return message, nil
}