package js import ( "github.com/dop251/goja" "src.dualinventive.com/go/dinet/ditime" "src.dualinventive.com/go/dinet/rpc" ) func (s *Simulator) publish(call goja.FunctionCall) goja.Value { var msg rpc.Msg msg.Type = rpc.MsgTypePublish msg.Time = ditime.Now() msg.ClassMethod = rpc.ClassMethod(call.Argument(0).String()) if msg.ClassMethod == "" { // TODO: Error or invalid classmethod return nil } switch data := call.Argument(1).Export().(type) { case map[string]interface{}: msg.Result = rpc.NewResult([]interface{}{data}) case []interface{}: msg.Result = rpc.NewResult(data) } err := s.m.Send(&msg) if err != nil { s.m.Error(err) } return nil }