This was broken in the move to zombiezen sqlite, which still doesn't work on WASM/JS.
--- /dev/null
+// Bolt piece completion is available, and sqlite is not.
+//go:build !noboltdb && !wasm && (js || nosqlite)
+// +build !noboltdb
+// +build !wasm
+// +build js nosqlite
+
+package storage
+
+func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
+ return NewBoltPieceCompletion(dir)
+}
-//go:build wasm
-// +build wasm
+// Bolt piece completion is not available, and neither is sqlite.
+//go:build wasm || noboltdb
+// +build wasm noboltdb
package storage
+++ /dev/null
-//go:build !nosqlite
-// +build !nosqlite
-
-package storage
-
-func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
- return NewSqlitePieceCompletion(dir)
-}
-//go:build !nosqlite
-// +build !nosqlite
+// modernc.org/sqlite depends on modernc.org/libc which doesn't work for JS (and probably wasm but I
+// think JS is the stronger signal).
+//go:build !js && !nosqlite
+// +build !js,!nosqlite
package storage
"zombiezen.com/go/sqlite/sqlitex"
)
+// sqlite is always the default when available.
+func NewDefaultPieceCompletionForDir(dir string) (PieceCompletion, error) {
+ return NewSqlitePieceCompletion(dir)
+}
+
type sqlitePieceCompletion struct {
mu sync.Mutex
closed bool