Skip to content

Commit f0b9994

Browse files
committed
Merge pull request #7 from zudov/update-to-0.7
Update for purescript-generics-0.7
2 parents c1e9278 + 2cefcb1 commit f0b9994

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

bower.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323
"license": "MIT",
2424
"dependencies": {
2525
"purescript-argonaut-core": "^0.2.0",
26-
"purescript-integers": "^0.2.1",
27-
"purescript-generics": "^0.6.1"
26+
"purescript-generics": "^0.7.0",
27+
"purescript-integers": "^0.2.1"
2828
},
2929
"devDependencies": {
30-
"purescript-strongcheck": "^0.14.1",
31-
"purescript-strongcheck-generics": "^0.2.0"
30+
"purescript-strongcheck-generics": "^0.3.0"
3231
}
3332
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@
66
"gulp": "^3.9.0",
77
"gulp-purescript": "^0.7.0",
88
"gulp-run": "^1.6.8",
9-
"purescript": "^0.7.5"
9+
"purescript": "^0.7.6-rc.1"
1010
}
1111
}

src/Data/Argonaut/Decode.purs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import Data.Argonaut.Core (Json(), foldJsonNull, foldJsonBoolean, foldJsonNumber
1414
import Data.Array (zipWithA)
1515
import Data.Either (either, Either(..))
1616
import Data.Foldable (find)
17-
import Data.Generic (Generic, GenericSpine(..), GenericSignature(..), Proxy(..), fromSpine, toSignature)
17+
import Data.Generic (Generic, GenericSpine(..), GenericSignature(..), fromSpine, toSignature)
1818
import Data.Int (fromNumber)
1919
import Data.List (List(..), toList)
2020
import Data.Map as Map
@@ -23,6 +23,7 @@ import Data.String (charAt, toChar)
2323
import Data.StrMap as M
2424
import Data.Traversable (traverse, for)
2525
import Data.Tuple (Tuple(..))
26+
import Type.Proxy (Proxy(..))
2627

2728
class DecodeJson a where
2829
decodeJson :: Json -> Either String a
@@ -49,9 +50,10 @@ gDecodeJson' signature json = case signature of
4950
pf <- mFail ("'" <> lbl <> "' property missing") (M.lookup lbl jObj)
5051
sp <- gDecodeJson' (val unit) pf
5152
pure { recLabel: lbl, recValue: const sp }
52-
SigProd alts -> do
53-
jObj <- mFail "Expected an object" $ toObject json
54-
tag <- mFail "'tag' string property is missing" (toString =<< M.lookup "tag" jObj)
53+
SigProd typeConstr alts -> do
54+
let decodingErr msg = "When decoding " ++ typeConstr ++ " " ++ msg
55+
jObj <- mFail (decodingErr "expected an object") (toObject json)
56+
tag <- mFail (decodingErr "'tag' string property is missing") (toString =<< M.lookup "tag" jObj)
5557
case find ((tag ==) <<< _.sigConstructor) alts of
5658
Nothing -> Left ("'" <> tag <> "' isn't a valid constructor")
5759
Just { sigValues: sigValues } -> do

src/Data/Argonaut/Encode.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import Data.Either (Either(..))
1212
import Data.Foldable (foldr)
1313
import Data.Generic (Generic, GenericSpine(..), toSpine)
1414
import Data.Int (toNumber)
15-
import Data.List (List(..), fromList)
15+
import Data.List (List(), fromList)
1616
import Data.Map as M
1717
import Data.Maybe (Maybe(..))
1818
import Data.String (fromChar)

0 commit comments

Comments
 (0)