File tree 5 files changed +38
-8
lines changed
5 files changed +38
-8
lines changed Original file line number Diff line number Diff line change @@ -4,27 +4,35 @@ on: [push]
4
4
jobs :
5
5
fmt :
6
6
runs-on : ubuntu-latest
7
- container : docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
7
+ container : docker://nhooyr/websocket-ci@sha256:402c8c50cf3bf31561701921ef1b83e3e76f84a8e6efb9864bb92b87ffaf1ac8
8
8
steps :
9
9
- uses : actions/checkout@v1
10
10
with :
11
11
fetch-depth : 1
12
12
- run : ./ci/fmt.sh
13
13
lint :
14
14
runs-on : ubuntu-latest
15
- container : docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
15
+ container : docker://nhooyr/websocket-ci@sha256:402c8c50cf3bf31561701921ef1b83e3e76f84a8e6efb9864bb92b87ffaf1ac8
16
16
steps :
17
17
- uses : actions/checkout@v1
18
18
with :
19
19
fetch-depth : 1
20
20
- run : ./ci/lint.sh
21
21
test :
22
22
runs-on : ubuntu-latest
23
- container : docker://nhooyr/websocket-ci@sha256:549cc2716fd1ff08608b39a52af95a67bf9f490f6f31933cccd94e750985e2dc
23
+ container : docker://nhooyr/websocket-ci@sha256:402c8c50cf3bf31561701921ef1b83e3e76f84a8e6efb9864bb92b87ffaf1ac8
24
24
steps :
25
25
- uses : actions/checkout@v1
26
26
with :
27
27
fetch-depth : 1
28
28
- run : ./ci/test.sh
29
29
env :
30
30
CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
31
+ wasm :
32
+ runs-on : ubuntu-latest
33
+ container : docker://nhooyr/websocket-ci@sha256:402c8c50cf3bf31561701921ef1b83e3e76f84a8e6efb9864bb92b87ffaf1ac8
34
+ steps :
35
+ - uses : actions/checkout@v1
36
+ with :
37
+ fetch-depth : 1
38
+ - run : ./ci/wasm.sh
Original file line number Diff line number Diff line change @@ -2,14 +2,20 @@ FROM golang:1
2
2
3
3
ENV DEBIAN_FRONTEND=noninteractive
4
4
ENV GOPATH=/root/gopath
5
+ ENV PATH=$GOPATH/bin:$PATH
5
6
ENV GOFLAGS="-mod=readonly"
6
7
ENV PAGER=cat
7
8
ENV CI=true
8
9
9
10
RUN apt-get update && \
10
- apt-get install -y shellcheck npm && \
11
+ apt-get install -y shellcheck npm chromium && \
11
12
npm install -g prettier
12
13
14
+ # https://github.com/golang/go/wiki/WebAssembly#running-tests-in-the-browser
15
+ RUN go get github.com/agnivade/wasmbrowsertest && \
16
+ mv $GOPATH/bin/wasmbrowsertest $GOPATH/bin/go_js_wasm_exec
17
+
18
+
13
19
RUN git config --global color.ui always
14
20
15
21
# Cache go modules.
Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ set -euo pipefail
4
+ cd " $( dirname " ${0} " ) "
5
+ cd " $( git rev-parse --show-toplevel) "
6
+
7
+ GOOS=js GOARCH=wasm go vet ./...
8
+ go install golang.org/x/lint/golint
9
+ GOOS=JS GOARCH=wasm golint -set_exit_status ./...
10
+ GOOS=js GOARCH=wasm go test ./internal/wsjs
Original file line number Diff line number Diff line change 1
1
// +build js
2
2
3
- // websocketjs implements typed access to the browser javascript WebSocket API.
3
+ // Package wsjs implements typed access to the browser javascript WebSocket API.
4
4
// https://developer.mozilla.org/en-US/docs/Web/API/WebSocket
5
- package websocketjs
5
+ package wsjs
6
6
7
7
import (
8
8
"context"
@@ -101,8 +101,14 @@ type MessageEvent struct {
101
101
102
102
func (c * WebSocket ) OnMessage (fn func (m MessageEvent )) {
103
103
c .addEventListener ("message" , func (e js.Value ) {
104
+ var data []byte
105
+
104
106
arrayBuffer := e .Get ("data" )
105
- data := extractArrayBuffer (arrayBuffer )
107
+ if arrayBuffer .Type () == js .TypeString {
108
+ data = []byte (arrayBuffer .String ())
109
+ } else {
110
+ data = extractArrayBuffer (arrayBuffer )
111
+ }
106
112
107
113
me := MessageEvent {
108
114
Data : data ,
Original file line number Diff line number Diff line change 1
1
// +build js
2
2
3
- package websocketjs
3
+ package wsjs
4
4
5
5
import (
6
6
"context"
You can’t perform that action at this time.
0 commit comments