- uses: actions/checkout@v2
- uses: ./.github/actions/go-common
- name: Some packages compile for WebAssembly
- run: GOOS=js GOARCH=wasm go build -v . ./storage ./tracker/...
+ run: GOOS=js GOARCH=wasm go build . ./storage ./tracker/...
torrentfs:
runs-on: ubuntu-latest
--- /dev/null
+// These build constraints are copied from webrtc's settingengine.go.
+//go:build !js
+// +build !js
+
+package webtorrent
+
+import (
+ "io"
+
+ "github.com/pion/logging"
+ "github.com/pion/webrtc/v3"
+)
+
+var s = webrtc.SettingEngine{
+ // This could probably be done with better integration into anacrolix/log, but I'm not sure if
+ // it's worth the effort.
+ LoggerFactory: discardLoggerFactory{},
+}
+
+type discardLoggerFactory struct{}
+
+func (discardLoggerFactory) NewLogger(scope string) logging.LeveledLogger {
+ return logging.NewDefaultLeveledLoggerForScope(scope, logging.LogLevelInfo, io.Discard)
+}
--- /dev/null
+// These build constraints are copied from webrtc's settingengine_js.go.
+//go:build js && wasm
+// +build js,wasm
+
+package webtorrent
+
+import (
+ "github.com/pion/webrtc/v3"
+)
+
+// I'm not sure what to do for logging for JS. See
+// https://gophers.slack.com/archives/CAK2124AG/p1649651943947579.
+var s = webrtc.SettingEngine{}
"github.com/anacrolix/missinggo/v2/pproffd"
"github.com/pion/datachannel"
- "github.com/pion/logging"
-
"github.com/pion/webrtc/v3"
)
-type DiscardLoggerFactory struct{}
-
-func (f *DiscardLoggerFactory) NewLogger(scope string) logging.LeveledLogger {
- return logging.NewDefaultLeveledLoggerForScope(scope, logging.LogLevelInfo, io.Discard)
-}
-
var (
metrics = expvar.NewMap("webtorrent")
api = func() *webrtc.API {
// Enable the detach API (since it's non-standard but more idiomatic).
- s := webrtc.SettingEngine{
- LoggerFactory: &DiscardLoggerFactory{},
- }
s.DetachDataChannels()
return webrtc.NewAPI(webrtc.WithSettingEngine(s))
}()