git.iko.soy/typeable/servant-reflex
on master help sign in
Merge remote-tracking branch 'origin/jsaddle'
0a4ab3fGreg Hale
.gitignore−1
@@ -6,5 +6,4 @@ log
6*.webapp
6*.webapp
7*.stats
7*.stats
8out
8out
9−reflex-platform
10/.stack-work/
9/.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
7[submodule "deps/http-api-data"]
1[submodule "deps/http-api-data"]
8 path = deps/http-api-data
2 path = deps/http-api-data
9 url = https://github.com/fizruk/http-api-data
3 url = https://github.com/fizruk/http-api-data
@@ -13,3 +7,6 @@
13[submodule "deps/servant-snap"]
7[submodule "deps/servant-snap"]
14 path = deps/servant-snap
8 path = deps/servant-snap
15 url = https://github.com/haskell-servant/servant-snap
9 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:
35 $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
35 $HOME/.cabal/packages/hackage.haskell.org/00-index.tar;
36 fi
36 fi
37 - travis_retry cabal update -v
37 - travis_retry cabal update -v
38− - git clone https://github.com/reflex-frp/reflex-platform
39 - sed -i 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
38 - 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"
39+ - deps/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"
40+ - deps/reflex-platform/work-on ghc ./testdriver --command "cd testdriver && cabal configure && cabal build"
42 - cd testserver && dist/build/back/back -p 8000 &
41 - cd testserver && dist/build/back/back -p 8000 &
43 - sleep 3
42 - sleep 3
44 - phantomjs --webdriver=127.0.0.1:4444 &
43 - phantomjs --webdriver=127.0.0.1:4444 &
build.sh+1−1
@@ -1,3 +1,3 @@
1#!/usr/bin/env bash
1#!/usr/bin/env bash
2
2
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
19import API
19import API
20import Data.Proxy
20import Data.Proxy
21import Text.Read (readMaybe)
21import Text.Read (readMaybe)
22−import Reflex.Dom
22+import Reflex.Dom hiding (run)
23------------------------------------------------------------------------------
23------------------------------------------------------------------------------
24import Servant.Reflex
24import Servant.Reflex
25import Servant.Reflex.Multi
25import Servant.Reflex.Multi
overrides-ghc.nix+1−9
@@ -1,19 +1,11 @@
1{ reflex-platform, ... }:
1{ reflex-platform, ... }:
2let
2let
3− dc = reflex-platform.lib.dontCheck;
4 c2n = reflex-platform.cabal2nixResult;
3 c2n = reflex-platform.cabal2nixResult;
4+ dc = reflex-platform.lib.dontCheck;
5in reflex-platform.ghc.override {
5in reflex-platform.ghc.override {
6 overrides = self: super: {
6 overrides = self: super: {
7 servant-snap = dc (self.callPackage (c2n deps/servant-snap) {});
7 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) {});
12 heist = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/heist) {});
8 heist = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/heist) {});
13 xmlhtml = dc (self.callPackage (c2n deps/servant-snap/deps/snap/deps/xmlhtml) {});
9 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) {});
18 };
10 };
19}
11}
overrides.nix−4
@@ -1,13 +1,9 @@
1{ reflex-platform, ... }:
1{ reflex-platform, ... }:
2let
2let
3−
4 dc = reflex-platform.lib.dontCheck;
3 dc = reflex-platform.lib.dontCheck;
5 c2n = reflex-platform.cabal2nixResult;
4 c2n = reflex-platform.cabal2nixResult;
6−
7in
5in
8reflex-platform.ghcjs.override {
6reflex-platform.ghcjs.override {
9 overrides = self: super: {
7 overrides = self: super: {
10− # servant = dc (self.callPackage (c2n deps/servant/servant) {});
11− # http-api-data = dc (self.callPackage (c2n deps/http-api-data) {});
12 };
8 };
13}
9}
servant-reflex.cabal+3−2
@@ -1,5 +1,5 @@
1Name: servant-reflex
1Name: servant-reflex
2−Version: 0.3
2+Version: 0.3.1
3Synopsis: Servant reflex API generator
3Synopsis: Servant reflex API generator
4Description: Servant reflex API generator
4Description: Servant reflex API generator
5License: AllRightsReserved
5License: AllRightsReserved
@@ -32,9 +32,10 @@ library
32 containers >= 0.5.6 && < 0.6,
32 containers >= 0.5.6 && < 0.6,
33 data-default >= 0.5 && < 0.8,
33 data-default >= 0.5 && < 0.8,
34 exceptions >= 0.8 && < 0.9,
34 exceptions >= 0.8 && < 0.9,
35− ghcjs-dom >= 0.2 && < 0.3,
35+ ghcjs-dom >= 0.2 && < 0.9,
36 http-api-data >= 0.2 && < 0.4,
36 http-api-data >= 0.2 && < 0.4,
37 http-media >= 0.6 && < 0.7,
37 http-media >= 0.6 && < 0.7,
38+ jsaddle >= 0.8 && < 0.9,
38 mtl >= 2.2.1 && < 2.3,
39 mtl >= 2.2.1 && < 2.3,
39 network-uri >= 2.6 && < 2.7,
40 network-uri >= 2.6 && < 2.7,
40 reflex >= 0.5 && < 0.6,
41 reflex >= 0.5 && < 0.6,
src/Servant/Common/BaseUrl.hs+3−2
@@ -20,18 +20,19 @@ module Servant.Common.BaseUrl (
20) where
20) where
21
21
22import Control.Monad (join)
22import Control.Monad (join)
23−import Control.Monad.IO.Class (MonadIO)
23+-- import Control.Monad.IO.Class (MonadIO)
24import Control.Monad.Fix (MonadFix)
24import Control.Monad.Fix (MonadFix)
25import Data.Monoid ((<>))
25import Data.Monoid ((<>))
26import Data.Text (Text)
26import Data.Text (Text)
27import qualified Data.Text as T
27import qualified Data.Text as T
28import GHC.Generics
28import GHC.Generics
29+import Language.Javascript.JSaddle.Monad (MonadJSM)
29import Reflex
30import Reflex
30import Reflex.Dom
31import Reflex.Dom
31import Text.Read
32import Text.Read
32
33
33
34
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))
35
36
36-- | URI scheme to use
37-- | URI scheme to use
37data Scheme =
38data Scheme =
src/Servant/Common/Req.hs+3−1
@@ -25,6 +25,7 @@ import Data.Text (Text)
25import qualified Data.Text as T
25import qualified Data.Text as T
26import qualified Data.Text.Encoding as TE
26import qualified Data.Text.Encoding as TE
27import Data.Traversable (forM)
27import Data.Traversable (forM)
28+import Language.Javascript.JSaddle.Monad (JSM, MonadJSM)
28import Reflex.Dom hiding (tag)
29import Reflex.Dom hiding (tag)
29import Servant.Common.BaseUrl (BaseUrl, showBaseUrl,
30import Servant.Common.BaseUrl (BaseUrl, showBaseUrl,
30 SupportsServantReflex)
31 SupportsServantReflex)
@@ -255,6 +256,7 @@ performRequests reqMeth rs reqHost trigger = do
255-- | 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.
256-- | 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.
256performSomeRequestsAsync
257performSomeRequestsAsync
257 :: (MonadIO (Performable m),
258 :: (MonadIO (Performable m),
259+ MonadJSM (Performable m),
258 HasWebView (Performable m),
260 HasWebView (Performable m),
259 PerformEvent t m,
261 PerformEvent t m,
260 TriggerEvent t m,
262 TriggerEvent t m,
@@ -270,7 +272,7 @@ performSomeRequestsAsync = performSomeRequestsAsync' newXMLHttpRequest . fmap re
270-- that accepts 'f (Either e (XhrRequestb))' events
272-- that accepts 'f (Either e (XhrRequestb))' events
271performSomeRequestsAsync'
273performSomeRequestsAsync'
272 :: (MonadIO (Performable m), PerformEvent t m, TriggerEvent t m, Traversable f)
274 :: (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)
274 -> Event t (Performable m (f (Either Text (XhrRequest b)))) -> m (Event t (f (Either Text a)))
276 -> Event t (Performable m (f (Either Text (XhrRequest b)))) -> m (Event t (f (Either Text a)))
275performSomeRequestsAsync' newXhr req = performEventAsync $ ffor req $ \hrs cb -> do
277performSomeRequestsAsync' newXhr req = performEventAsync $ ffor req $ \hrs cb -> do
276 rs <- hrs
278 rs <- hrs