mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-02 18:10:48 +08:00
38 lines
810 B
Go
38 lines
810 B
Go
package message
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
type CallMessage struct {
|
|
Name string `json:"name"`
|
|
Args []interface{} `json:"args"`
|
|
CallbackID string `json:"callbackID,omitempty"`
|
|
}
|
|
|
|
// callMessageParser does what it says on the tin!
|
|
func callMessageParser(message string) (*parsedMessage, error) {
|
|
|
|
// Sanity check: Call messages must be at least 3 bytes `C{}``
|
|
if len(message) < 3 {
|
|
return nil, fmt.Errorf("call message was an invalid length")
|
|
}
|
|
|
|
callMessage := new(CallMessage)
|
|
|
|
m := message[1:]
|
|
err := json.Unmarshal([]byte(m), callMessage)
|
|
if err != nil {
|
|
println(err.Error())
|
|
return nil, err
|
|
}
|
|
|
|
topic := "call:invoke"
|
|
|
|
// Create a new parsed message struct
|
|
parsedMessage := &parsedMessage{Topic: topic, Data: callMessage}
|
|
|
|
return parsedMessage, nil
|
|
}
|