packages feed

miso-0.7.3.0: miso.cabal

name:                miso
version:             0.7.3.0
category:            Web, Miso, Data Structures
license:             BSD3
license-file:        LICENSE
author:              David M. Johnson <djohnson.m@gmail.com>
maintainer:          David M. Johnson <djohnson.m@gmail.com>
homepage:            http://github.com/dmjio/miso
copyright:           Copyright (c) 2017 David M. Johnson
build-type:          Simple
extra-source-files:  README.md
cabal-version:       >=1.22
synopsis:            A tasty Haskell front-end framework
description:
            Miso is a small "isomorphic" Haskell front-end framework featuring a virtual-dom, diffing / patching algorithm, event delegation, event batching, SVG, Server-sent events, Websockets, type-safe servant-style routing and an extensible Subscription-based subsystem. Inspired by Elm, Redux and Bobril. Miso is pure by default, but side effects (like XHR) can be introduced into the system via the Effect data type. Miso makes heavy use of the GHCJS FFI and therefore has minimal dependencies.

extra-source-files:
  README.md
  examples/todo-mvc/index.html
  examples/websocket/index.html
  examples/mario/imgs/jump/right.gif
  examples/mario/imgs/jump/left.gif
  examples/mario/imgs/stand/right.gif
  examples/mario/imgs/stand/left.gif
  examples/mario/imgs/walk/right.gif
  examples/mario/imgs/walk/left.gif

flag examples
  default:
    False
  description:
    Builds Miso's examples

flag tests
  default:
    False
  description:
    Builds Miso's tests

executable todo-mvc
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/todo-mvc
    build-depends:
      aeson,
      base < 5,
      containers,
      miso
    default-language:
      Haskell2010

executable threejs
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/three
    build-depends:
      aeson,
      base < 5,
      ghcjs-base,
      containers,
      miso
    default-language:
      Haskell2010

executable file-reader
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/file-reader
    build-depends:
      aeson,
      base < 5,
      containers,
      ghcjs-base,
      miso
    default-language:
      Haskell2010

executable xhr
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/xhr
    build-depends:
      aeson,
      base < 5,
      containers,
      ghcjs-base,
      miso
    default-language:
      Haskell2010

executable canvas2d
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/canvas2d
    build-depends:
      aeson,
      base < 5,
      ghcjs-base,
      miso
    default-language:
      Haskell2010

executable router
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/router
    build-depends:
      aeson,
      base < 5,
      containers,
      miso,
      servant
    default-language:
      Haskell2010

executable websocket
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/websocket
    build-depends:
      aeson,
      base < 5,
      containers,
      miso
    default-language:
      Haskell2010

executable mario
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/mario
    build-depends:
      base < 5,
      containers,
      miso
    default-language:
      Haskell2010

executable svg
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/svg
    build-depends:
      base < 5,
      containers,
      miso
    default-language:
      Haskell2010

executable compose-update
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      examples/compose-update
    build-depends:
      base < 5,
      miso
    default-language:
      Haskell2010

executable simple
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(examples)
    buildable: False
  else
    hs-source-dirs:
      exe
    build-depends:
      aeson,
      base < 5,
      containers,
      miso
    default-language:
      Haskell2010

executable tests
  main-is:
    Main.hs
  if !impl(ghcjs) || !flag(tests)
    buildable: False
  else
    hs-source-dirs:
      tests
    build-depends:
      aeson,
      base < 5,
      miso,
      hspec,
      hspec-core,
      ghcjs-base
    default-language:
      Haskell2010

library
  default-language:
    Haskell2010
  exposed-modules:
    Miso
    Miso.Html
    Miso.Html.Element
    Miso.Html.Event
    Miso.Html.Property
    Miso.Lens
    Miso.Event
    Miso.Event.Decoder
    Miso.Event.Types
    Miso.Svg
    Miso.Svg.Attribute
    Miso.Svg.Element
    Miso.Svg.Event
    Miso.String
  other-modules:
    Miso.Concurrent
    Miso.Html.Internal
  ghc-options:
    -Wall
  hs-source-dirs:
    src
  build-depends:
    aeson,
    base < 5,
    bytestring,
    BoundedChan,
    containers,
    servant,
    text
  if impl(ghcjs)
    hs-source-dirs:
      ghcjs-src
    build-depends:
      ghcjs-base,
      http-types,
      network-uri,
      http-api-data,
      containers,
      scientific,
      unordered-containers,
      transformers,
      vector
    js-sources:
      jsbits/diff.js
      jsbits/delegate.js
      jsbits/isomorphic.js
      jsbits/util.js
    exposed-modules:
      Miso.Dev
      Miso.Effect
      Miso.Effect.Storage
      Miso.Effect.XHR
      Miso.Effect.DOM
      Miso.Router
      Miso.Subscription
      Miso.Subscription.History
      Miso.Subscription.Keyboard
      Miso.Subscription.Mouse
      Miso.Subscription.WebSocket
      Miso.Subscription.Window
      Miso.Subscription.SSE
      Miso.Types
    other-modules:
      Miso.Diff
      Miso.FFI
      Miso.Delegate
  else
    exposed-modules:
      Miso.TypeLevel
    build-depends:
      lucid,
      servant-lucid,
      vector
    hs-source-dirs:
      ghc-src

source-repository head
   type: git
   location: https://github.com/dmjio/miso.git