elm-hot icon indicating copy to clipboard operation
elm-hot copied to clipboard

Cannot init a headless Program

Open mingan opened this issue 6 years ago • 3 comments

When the library gets used on top of a SharedWorker implemented as a worker program, the wrapping init function fails because document does not exist in the context of the worker.

The failing line in my case is hmr.js#L174 but L170 is going to have the same problem.

Adding a simple guard if (typeof document !== 'undefined') seems to solve the problem at least for me.

mingan avatar Feb 20 '19 17:02 mingan

I've never used the service worker api before. If you could post a simple demo app as a gist, I'd be happy to fix the bug.

klazuka avatar Feb 20 '19 20:02 klazuka

Demo here https://github.com/mingan/elm-hot-issue-demo.

The expected behaviour is to see log output (current time every 3 seconds) from the shared worker.

I kicked it off from a starter repo and apart from adding a shared worker loader, I had to downgrade Webpack to version 3 to replicate the issue. V4 ended up with a different error which seems unrelated to this project (the injected HMR code references window directly).

mingan avatar Feb 21 '19 08:02 mingan

thanks!

klazuka avatar Feb 21 '19 22:02 klazuka