Skip to content

Commit 5877dee

Browse files
committed
Add Respondable instance for Argonaut's Json
1 parent 795dd67 commit 5877dee

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

bower.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
],
2525
"dependencies": {
2626
"purescript-aff": "^0.13.0",
27+
"purescript-argonaut-core": "^0.2.0",
2728
"purescript-arraybuffer-types": "^0.2.0",
2829
"purescript-dom": "^0.2.0",
2930
"purescript-foreign": "^0.7.0",

docs/Network.HTTP.Affjax.Response.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ class Respondable a where
4949
``` purescript
5050
instance responsableBlob :: Respondable Blob
5151
instance responsableDocument :: Respondable Document
52-
instance responsableJSON :: Respondable Foreign
52+
instance responsableForeign :: Respondable Foreign
5353
instance responsableString :: Respondable String
5454
instance responsableUnit :: Respondable Unit
55+
instance responsableArrayBuffer :: Respondable ArrayBuffer
56+
instance responsableJson :: Respondable Json
5557
```
5658

5759

src/Network/HTTP/Affjax/Response.purs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@ module Network.HTTP.Affjax.Response
55
) where
66

77
import Prelude
8+
9+
import Data.Argonaut.Core (Json())
810
import Data.Either (Either(..))
911
import Data.Foreign (Foreign(), F(), readString, unsafeReadTagged)
12+
import qualified Data.ArrayBuffer.Types as A
13+
1014
import DOM.File.Types (Blob())
1115
import DOM.Node.Types (Document())
1216
import DOM.XHR.Types (FormData())
13-
import qualified Data.ArrayBuffer.Types as A
17+
18+
import Unsafe.Coerce (unsafeCoerce)
1419

1520
-- | Valid response types for an AJAX request. This is used to determine the
1621
-- | `ResponseContent` type for a request. The `a` type variable is a phantom
@@ -61,7 +66,7 @@ instance responsableDocument :: Respondable Document where
6166
responseType = DocumentResponse
6267
fromResponse = unsafeReadTagged "Document"
6368

64-
instance responsableJSON :: Respondable Foreign where
69+
instance responsableForeign :: Respondable Foreign where
6570
responseType = JSONResponse
6671
fromResponse = Right
6772

@@ -76,3 +81,7 @@ instance responsableUnit :: Respondable Unit where
7681
instance responsableArrayBuffer :: Respondable A.ArrayBuffer where
7782
responseType = ArrayBufferResponse
7883
fromResponse = unsafeReadTagged "ArrayBuffer"
84+
85+
instance responsableJson :: Respondable Json where
86+
responseType = JSONResponse
87+
fromResponse = Right <<< unsafeCoerce

0 commit comments

Comments
 (0)