|
1 | 1 | module Network.HTTP.Affjax
|
2 |
| - ( AJAX() |
3 |
| - , Affjax() |
4 |
| - , AffjaxRequest(), defaultRequest |
5 |
| - , AffjaxResponse() |
6 |
| - , URL() |
| 2 | + ( AJAX |
| 3 | + , Affjax |
| 4 | + , AffjaxRequest, defaultRequest |
| 5 | + , AffjaxResponse |
| 6 | + , URL |
7 | 7 | , affjax
|
8 | 8 | , affjax'
|
9 | 9 | , get
|
10 | 10 | , post, post_, post', post_'
|
11 | 11 | , put, put_, put', put_'
|
12 | 12 | , delete, delete_
|
13 | 13 | , patch, patch_, patch', patch_'
|
14 |
| - , RetryDelayCurve() |
| 14 | + , RetryDelayCurve |
15 | 15 | , RetryPolicy(..)
|
16 | 16 | , defaultRetryPolicy
|
17 | 17 | , retry
|
18 | 18 | ) where
|
19 | 19 |
|
20 | 20 | import Prelude hiding (max)
|
21 | 21 |
|
22 |
| -import Control.Bind ((<=<)) |
23 |
| -import Control.Monad.Aff (Aff(), makeAff, makeAff', Canceler(..), attempt, later', forkAff, cancel) |
24 |
| -import Control.Monad.Aff.AVar (AVAR(), makeVar, takeVar, putVar) |
25 |
| -import Control.Monad.Eff (Eff()) |
| 22 | +import Control.Monad.Aff (Aff, makeAff, makeAff', Canceler(..), attempt, later', forkAff, cancel) |
| 23 | +import Control.Monad.Aff.AVar (AVAR, makeVar, takeVar, putVar) |
| 24 | +import Control.Monad.Eff (Eff) |
26 | 25 | import Control.Monad.Eff.Class (liftEff)
|
27 |
| -import Control.Monad.Eff.Exception (Error(), error) |
28 |
| -import Control.Monad.Eff.Ref (REF(), newRef, readRef, writeRef) |
29 |
| -import Control.Monad.Error.Class (throwError) |
| 26 | +import Control.Monad.Eff.Exception (Error, error) |
| 27 | +import Control.Monad.Eff.Ref (REF, newRef, readRef, writeRef) |
| 28 | +import Control.Monad.Except (runExcept, throwError) |
30 | 29 |
|
31 | 30 | import Data.Array as Arr
|
32 | 31 | import Data.Either (Either(..), either)
|
33 | 32 | import Data.Foldable (any)
|
34 |
| -import Data.Foreign (Foreign(), F(), parseJSON, readString) |
| 33 | +import Data.Foreign (Foreign, F, parseJSON, readString) |
35 | 34 | import Data.Function (on)
|
36 |
| -import Data.Function.Uncurried (Fn5(), runFn5, Fn4(), runFn4) |
37 |
| -import Data.HTTP.Method (Method(..), CustomMethod()) |
| 35 | +import Data.Function.Uncurried (Fn5, runFn5, Fn4, runFn4) |
| 36 | +import Data.HTTP.Method (Method(..), CustomMethod) |
38 | 37 | import Data.HTTP.Method as Method
|
39 | 38 | import Data.Int (toNumber, round)
|
40 | 39 | import Data.Maybe (Maybe(..))
|
41 |
| -import Data.MediaType (MediaType()) |
42 |
| -import Data.Nullable (Nullable(), toNullable) |
| 40 | +import Data.MediaType (MediaType) |
| 41 | +import Data.Nullable (Nullable, toNullable) |
43 | 42 | import Data.Tuple (Tuple(..), fst, snd)
|
44 | 43 |
|
45 | 44 | import Math (max, pow)
|
46 | 45 |
|
47 |
| -import DOM.XHR.Types (XMLHttpRequest()) |
| 46 | +import DOM.XHR.Types (XMLHttpRequest) |
48 | 47 |
|
49 | 48 | import Network.HTTP.Affjax.Request (class Requestable, RequestContent, toRequest)
|
50 | 49 | import Network.HTTP.Affjax.Response (class Respondable, ResponseContent, ResponseType(..), fromResponse, responseType, responseTypeToString)
|
51 | 50 | import Network.HTTP.RequestHeader (RequestHeader(..), requestHeaderName, requestHeaderValue)
|
52 |
| -import Network.HTTP.ResponseHeader (ResponseHeader(), responseHeader) |
| 51 | +import Network.HTTP.ResponseHeader (ResponseHeader, responseHeader) |
53 | 52 | import Network.HTTP.StatusCode (StatusCode(..))
|
54 | 53 |
|
55 | 54 | -- | The effect type for AJAX requests made with Affjax.
|
@@ -274,7 +273,7 @@ affjax' req eb cb =
|
274 | 273 | _ -> hs
|
275 | 274 |
|
276 | 275 | cb' :: AffjaxResponse ResponseContent -> Eff (ajax :: AJAX | e) Unit
|
277 |
| - cb' res = case res { response = _ } <$> fromResponse' res.response of |
| 276 | + cb' res = case res { response = _ } <$> runExcept (fromResponse' res.response) of |
278 | 277 | Left err -> eb $ error (show err)
|
279 | 278 | Right res' -> cb res'
|
280 | 279 |
|
|
0 commit comments