Files
netbird/client/internal/engine_filedrop_js.go
Zoltán Papp 09715fabd3 [client] Keep file drop out of the wasm build
File drop needs a local filesystem to deliver into and a receiver it can bind,
so wasm supports neither and never sets a manager. The code still linked in,
because the Engine reached filedrop through an untagged field, and with it the
net/http server and client. That put the wasm binary 0.97MiB over the 60MB
budget, on a main that had 0.34MiB of headroom left.

Split the feature on the js tag: the logic file and the OS dialer become !js,
a js no-op carries the start, stop and rebind entry points the engine calls on
its lifecycle paths, and a build-tagged alias types the manager so engine.go
and connect.go stay untagged and lose the import. iOS keeps the full feature:
the logic file is !js and the iOS dialer stays behind the ios tag.

Drops the wasm binary to 59.89MiB, with no filedrop symbol left in it.
2026-09-08 20:43:40 +02:00

15 lines
439 B
Go

//go:build js
package internal
// File drop is not supported on wasm: there is no local filesystem to deliver
// into and no way to bind a receiver. The engine still calls these on the
// start, stop and overlay rebind paths, so they exist as no-ops and keep the
// filedrop package out of the wasm binary.
func (e *Engine) startFileDrop() {}
func (e *Engine) stopFileDrop() {}
func (e *Engine) restartFileDrop() error { return nil }