This project contains a sample miso application with scripts to develop against vanilla GHC and to compile to Web Assembly or JavaScript.
-----------------------------------------------------------------------------
main :: IO ()
main = run (startApp app)
-----------------------------------------------------------------------------
app :: App Model Action
app = (component (Model 0) updateModel viewModel)
{ events = pointerEvents
, styles = [ Sheet sheet ]
}
-----------------------------------------------------------------------------
updateModel :: Action -> Transition Model Action
updateModel = \case
AddOne -> do
value += 1
SubtractOne ->
value -= 1
SayHelloWorld ->
io_ (consoleLog "Hello World!")
----------------------------------------------------------------------------- Tip
This requires installing nix with Nix Flakes enabled. Although not required, we recommend using miso's binary cache.
Call nix develop to enter a shell with GHC 9.12.2
$ nix develop --experimental-features nix-command --extra-experimental-features flakesOnce in the shell, you can call cabal run to start the development server and view the application at http://localhost:8080
$ nix develop .#wasm --command bash -c "make"$ nix develop .#ghcjs
$ build appTo host the built application you can call serve
$ nix develop .#wasm --command bash -c "serve"$ nix develop --command bash -c "make clean"This comes with a GitHub action that builds and auto hosts the example.