Skip to content

Commit f63cd77

Browse files
committed
Merge pull request #17 from purescript-contrib/int
Add encode/decode for Int
2 parents e883e54 + 34ab576 commit f63cd77

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"purescript-control": "~0.2.1",
1919
"purescript-lens": "~0.7.0",
2020
"purescript-optic": "~0.5.0",
21-
"purescript-index": "~0.3.0"
21+
"purescript-index": "~0.3.0",
22+
"purescript-integers": "~0.1.0"
2223
},
2324
"devDependencies": {
2425
"purescript-strongcheck": "~0.9.0"

src/Data/Argonaut/Decode.purs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ module Data.Argonaut.Decode
3232
)
3333
import Data.Argonaut.Encode (encodeJson, EncodeJson)
3434
import Data.Either (either, Either(..))
35+
import Data.Int (Int(), fromNumber)
3536
import Data.Maybe (maybe, Maybe(..))
3637
import Data.Foldable (Foldable, foldl, foldMap, foldr)
3738
import Data.Traversable (Traversable, traverse)
@@ -66,6 +67,9 @@ module Data.Argonaut.Decode
6667
instance decodeJsonNumber :: DecodeJson Number where
6768
decodeJson = foldJsonNumber (Left "Not a Number.") Right
6869

70+
instance decodeJsonInt :: DecodeJson Int where
71+
decodeJson = foldJsonNumber (Left "Not a Number.") (Right <<< fromNumber)
72+
6973
instance decodeJsonString :: DecodeJson String where
7074
decodeJson = foldJsonString (Left "Not a String.") Right
7175

src/Data/Argonaut/Encode.purs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ module Data.Argonaut.Encode
2020
import Data.Char
2121
import Data.Maybe
2222
import Data.Either
23+
import Data.Int (Int(), toNumber)
2324
import Data.Foldable (foldr)
2425
import Data.Tuple (Tuple(..))
2526

@@ -49,6 +50,9 @@ module Data.Argonaut.Encode
4950
instance encodeJsonJNumber :: EncodeJson Number where
5051
encodeJson = fromNumber
5152

53+
instance encodeJsonInt :: EncodeJson Int where
54+
encodeJson = fromNumber <<< toNumber
55+
5256
instance encodeJsonJString :: EncodeJson String where
5357
encodeJson = fromString
5458

@@ -65,4 +69,4 @@ module Data.Argonaut.Encode
6569
encodeJson m = fromObject (encodeJson <$> m)
6670

6771
instance encodeMap :: (Ord a, EncodeJson a, EncodeJson b) => EncodeJson (Map.Map a b) where
68-
encodeJson = encodeJson <<< Map.toList
72+
encodeJson = encodeJson <<< Map.toList

src/Data/Argonaut/README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,13 @@ instance decodeJsonNumber :: DecodeJson Number
506506
```
507507

508508

509+
#### `decodeJsonInt`
510+
511+
``` purescript
512+
instance decodeJsonInt :: DecodeJson Int
513+
```
514+
515+
509516
#### `decodeJsonString`
510517

511518
``` purescript
@@ -629,6 +636,13 @@ instance encodeJsonJNumber :: EncodeJson Number
629636
```
630637

631638

639+
#### `encodeJsonInt`
640+
641+
``` purescript
642+
instance encodeJsonInt :: EncodeJson Int
643+
```
644+
645+
632646
#### `encodeJsonJString`
633647

634648
``` purescript

0 commit comments

Comments
 (0)