module Language.Javascript.JSaddle.Wasm.JS (jsaddleScript) where
import Data.ByteString.Lazy.Char8 qualified as BLC8
import Language.Javascript.JSaddle.Run.Files qualified as JSaddle.Files
jsaddleScript :: BLC8.ByteString
jsaddleScript :: ByteString
jsaddleScript =
[ByteString] -> ByteString
BLC8.unlines
[ ByteString
JSaddle.Files.ghcjsHelpers,
ByteString
JSaddle.Files.initState,
ByteString
"function runJSaddle(worker) {",
ByteString
" worker.addEventListener('message', e => {",
ByteString
" const d = e.data;",
ByteString
" if (d && typeof d === 'object' && d.tag === 'jsaddle') {",
ByteString
" const batch = JSON.parse(d.msg);",
(ByteString -> ByteString)
-> Maybe (ByteString -> ByteString) -> ByteString
JSaddle.Files.runBatch
(\ByteString
r -> ByteString
"worker.postMessage({tag: 'jsaddle', msg: JSON.stringify(" ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
r ByteString -> ByteString -> ByteString
forall a. Semigroup a => a -> a -> a
<> ByteString
")});")
Maybe (ByteString -> ByteString)
forall a. Maybe a
Nothing,
ByteString
" }",
ByteString
" });",
ByteString
"}"
]