...

Source file src/github.com/playwright-community/playwright-go/jsonPipe.go

Documentation: github.com/playwright-community/playwright-go

     1  package playwright
     2  
     3  import (
     4  	"encoding/json"
     5  	"log"
     6  )
     7  
     8  type jsonPipe struct {
     9  	channelOwner
    10  }
    11  
    12  func (j *jsonPipe) Send(message map[string]interface{}) error {
    13  	_, err := j.channel.Send("send", map[string]interface{}{
    14  		"message": message})
    15  	return err
    16  }
    17  
    18  func (j *jsonPipe) Close() error {
    19  	_, err := j.channel.Send("close")
    20  	return err
    21  }
    22  func newJsonPipe(parent *channelOwner, objectType string, guid string, initializer map[string]interface{}) *jsonPipe {
    23  	j := &jsonPipe{}
    24  	j.createChannelOwner(j, parent, objectType, guid, initializer)
    25  	j.channel.On("message", func(ev map[string]interface{}) {
    26  		m, err := json.Marshal(ev["message"])
    27  		if err != nil {
    28  			log.Fatal(err)
    29  		}
    30  		var msg message
    31  		err = json.Unmarshal(m, &msg)
    32  		if err != nil {
    33  			log.Fatal(err)
    34  		}
    35  		j.Emit("message", &msg)
    36  	})
    37  	j.channel.On("closed", func() {
    38  		j.Emit("closed")
    39  	})
    40  	return j
    41  }
    42  

View as plain text