git.iko.soy/typeable/servant-reflex
on master help sign in
Merge remote-tracking branch 'origin/jsaddle'
commit0a4ab3f67fdf3c95d7890d5107ff3af6f2519dfa authorGreg Hale <imalsogreg@gmail.com> dateSun 28 May 2017, 17:03 (9 years ago) parentb13b6fee7fd890
13 files changed+18−32
.gitignore−1 .gitmodules+3−6 .travis.yml+2−3 build.sh+1−1 deps/reflex−1 deps/reflex-dom−1 deps/reflex-platform+1 exec/Example.hs+1−1 overrides-ghc.nix+1−9 overrides.nix−4 servant-reflex.cabal+3−2 src/Servant/Common/BaseUrl.hs+3−2 src/Servant/Common/Req.hs+3−1
.gitignore−1
@@ -6,5 +6,4 @@ log
66*.webapp
77*.stats
88out
9−reflex-platform
109/.stack-work/
.gitmodules+3−6
@@ -1,9 +1,3 @@
1−[submodule "deps/reflex-dom"]
2− path = deps/reflex-dom
3− url = https://github.com/reflex-frp/reflex-dom.git
4−[submodule "deps/reflex"]
5− path = deps/reflex
6− url = https://github.com/reflex-frp/reflex.git
71[submodule "deps/http-api-data"]
82 path = deps/http-api-data
93 url = https://github.com/fizruk/http-api-data
@@ -13,3 +7,6 @@
137[submodule "deps/servant-snap"]
148 path = deps/servant-snap
159 url = https://github.com/haskell-servant/servant-snap
10+[submodule "deps/reflex-platform"]
11+ path = deps/reflex-platform
12+ url = https://github.com/reflex-frp/reflex-platform
.travis.yml+2−3
@@ -35,10 +35,9 @@ install:
3535 $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
3636 fi
3737 - travis_retry cabal update -v
38− - git clone https://github.com/reflex-frp/reflex-platform
3938 - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
40− - reflex-platform/work-on ./overrides-ghc.nix ./testserver --command "cd testserver && cabal configure -fExample && cabal build"
41− - reflex-platform/work-on ghc ./testdriver --command "cd testdriver && cabal configure && cabal build"
39+ - deps/reflex-platform/work-on ./overrides-ghc.nix ./testserver --command "cd testserver && cabal configure -fExample && cabal build"
40+ - deps/reflex-platform/work-on ghc ./testdriver --command "cd testdriver && cabal configure && cabal build"
4241 - cd testserver && dist/build/back/back -p 8000 &
4342 - sleep 3
4443 - phantomjs --webdriver=127.0.0.1:4444 &
build.sh+1−1
@@ -1,3 +1,3 @@
11#!/usr/bin/env bash
22
3−reflex-platform/work-on ./overrides.nix ./. --run "cabal configure --ghcjs && cabal build && exec/toSite.sh"
3+deps/reflex-platform/work-on ./overrides.nix ./. --run "cabal configure --ghcjs && cabal build && exec/toSite.sh"
deps/reflexdeleted−1

Submodule changed.

deps/reflex-domdeleted−1

Submodule changed.

deps/reflex-platformnew file+1

Submodule changed.

exec/Example.hs+1−1
@@ -19,7 +19,7 @@ import Servant.API
1919import API
2020import Data.Proxy
2121import Text.Read (readMaybe)
22−import Reflex.Dom
22+import Reflex.Dom hiding (run)
2323------------------------------------------------------------------------------
2424import Servant.Reflex
2525import Servant.Reflex.Multi
overrides-ghc.nix+1−9
@@ -1,19 +1,11 @@
11{ reflex-platform, ... }:
22let
3− dc = reflex-platform.lib.dontCheck;
43 c2n = reflex-platform.cabal2nixResult;
4+ dc = reflex-platform.lib.dontCheck;
55in reflex-platform.ghc.override {
66 overrides = self: super: {
77 servant-snap = dc (self.callPackage (c2n deps/servant-snap) {});
8− snap = dc (self.callPackage (c2n deps/servant-snap/deps/snap) {});
9− snap-server = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/snap-server) {});
10− io-streams = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/io-streams) {});
11− io-streams-haproxy = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/io-streams-haproxy) {});
128 heist = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/heist) {});
139 xmlhtml = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/xmlhtml) {});
14− snap-core = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/snap-core) {});
15− servant = dc (self.callPackage (c2n deps/servant/servant) {});
16− Glob = dc super.Glob;
17− http-api-data = dc (self.callPackage (c2n deps/http-api-data) {});
1810 };
1911}
overrides.nix−4
@@ -1,13 +1,9 @@
11{ reflex-platform, ... }:
22let
3−
43 dc = reflex-platform.lib.dontCheck;
54 c2n = reflex-platform.cabal2nixResult;
6−
75in
86reflex-platform.ghcjs.override {
97 overrides = self: super: {
10− # servant = dc (self.callPackage (c2n deps/servant/servant) {});
11− # http-api-data = dc (self.callPackage (c2n deps/http-api-data) {});
128 };
139}
servant-reflex.cabal+3−2
@@ -1,5 +1,5 @@
11Name: servant-reflex
2−Version: 0.3
2+Version: 0.3.1
33Synopsis: Servant reflex API generator
44Description: Servant reflex API generator
55License: AllRightsReserved
@@ -32,9 +32,10 @@ library
3232 containers >= 0.5.6 && < 0.6,
3333 data-default >= 0.5 && < 0.8,
3434 exceptions >= 0.8 && < 0.9,
35− ghcjs-dom >= 0.2 && < 0.3,
35+ ghcjs-dom >= 0.2 && < 0.9,
3636 http-api-data >= 0.2 && < 0.4,
3737 http-media >= 0.6 && < 0.7,
38+ jsaddle >= 0.8 && < 0.9,
3839 mtl >= 2.2.1 && < 2.3,
3940 network-uri >= 2.6 && < 2.7,
4041 reflex >= 0.5 && < 0.6,
src/Servant/Common/BaseUrl.hs+3−2
@@ -20,18 +20,19 @@ module Servant.Common.BaseUrl (
2020) where
2121
2222import Control.Monad (join)
23−import Control.Monad.IO.Class (MonadIO)
23+-- import Control.Monad.IO.Class (MonadIO)
2424import Control.Monad.Fix (MonadFix)
2525import Data.Monoid ((<>))
2626import Data.Text (Text)
2727import qualified Data.Text as T
2828import GHC.Generics
29+import Language.Javascript.JSaddle.Monad (MonadJSM)
2930import Reflex
3031import Reflex.Dom
3132import Text.Read
3233
3334
34−type SupportsServantReflex t m = (Reflex t, TriggerEvent t m, PerformEvent t m, HasWebView (Performable m), MonadIO (Performable m))
35+type SupportsServantReflex t m = (Reflex t, TriggerEvent t m, PerformEvent t m, HasWebView (Performable m), MonadJSM (Performable m))
3536
3637-- | URI scheme to use
3738data Scheme =
src/Servant/Common/Req.hs+3−1
@@ -25,6 +25,7 @@ import Data.Text (Text)
2525import qualified Data.Text as T
2626import qualified Data.Text.Encoding as TE
2727import Data.Traversable (forM)
28+import Language.Javascript.JSaddle.Monad (JSM, MonadJSM)
2829import Reflex.Dom hiding (tag)
2930import Servant.Common.BaseUrl (BaseUrl, showBaseUrl,
3031 SupportsServantReflex)
@@ -255,6 +256,7 @@ performRequests reqMeth rs reqHost trigger = do
255256-- | Issues a collection of requests when the supplied Event fires. When ALL requests from a given firing complete, the results are collected and returned via the return Event.
256257performSomeRequestsAsync
257258 :: (MonadIO (Performable m),
259+ MonadJSM (Performable m),
258260 HasWebView (Performable m),
259261 PerformEvent t m,
260262 TriggerEvent t m,
@@ -270,7 +272,7 @@ performSomeRequestsAsync = performSomeRequestsAsync' newXMLHttpRequest . fmap re
270272-- that accepts 'f (Either e (XhrRequestb))' events
271273performSomeRequestsAsync'
272274 :: (MonadIO (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f)
273− => (XhrRequest b -> (a -> IO ()) -> Performable m XMLHttpRequest)
275+ => (XhrRequest b -> (a -> JSM ()) -> Performable m XMLHttpRequest)
274276 -> Event t (Performable m (f (Either Text (XhrRequest b)))) -> m (Event t (f (Either Text a)))
275277performSomeRequestsAsync' newXhr req = performEventAsync $ ffor req $ \hrs cb -> do
276278 rs <- hrs