Skip to content

Commit 15d0913

Browse files
Update to v0.14.0-rc3 (#31)
* Update packages.dhall to prepare-0.14 bootstrap * Update CI to use v0.14.0-rc3 PS release * Fix Proxy usage * Update `fromRight` usage
1 parent caa110f commit 15d0913

File tree

5 files changed

+17
-13
lines changed

5 files changed

+17
-13
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515

1616
- name: Set up a PureScript toolchain
1717
uses: purescript-contrib/setup-purescript@main
18+
with:
19+
purescript: "0.14.0-rc3"
1820

1921
- name: Cache PureScript dependencies
2022
uses: actions/cache@v2

packages.dhall

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
let upstream =
2-
https://github.com/purescript/package-sets/releases/download/psc-0.13.8-20200831/packages.dhall sha256:cdb3529cac2cd8dd780f07c80fd907d5faceae7decfcaa11a12037df68812c83
2+
https://raw.githubusercontent.com/purescript/package-sets/prepare-0.14/src/packages.dhall
33

44
in upstream

src/Data/Argonaut/Decode/Generic/Rep.purs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ import Data.Array (uncons)
2222
import Data.Bifunctor (lmap)
2323
import Data.Either (Either(..), note)
2424
import Data.Generic.Rep as Rep
25-
import Data.Symbol (class IsSymbol, SProxy(..), reflectSymbol)
25+
import Data.Symbol (class IsSymbol, reflectSymbol)
2626
import Foreign.Object as FO
2727
import Partial.Unsafe (unsafeCrashWith)
2828
import Prim.TypeError (class Fail, Text)
29+
import Type.Proxy (Proxy(..))
2930

3031
class DecodeRep r where
3132
decodeRepWith :: Encoding -> Json -> Either JsonDecodeError r
@@ -86,13 +87,13 @@ construct e valuesArray decodingErr = do
8687

8788
instance decodeRepConstructorNoArgs :: IsSymbol name => DecodeRep (Rep.Constructor name Rep.NoArguments) where
8889
decodeRepWith e j = do
89-
let name = reflectSymbol (SProxy :: SProxy name)
90+
let name = reflectSymbol (Proxy :: Proxy name)
9091
{tag, decodingErr} <- withTag e j name
9192
construct e [] decodingErr
9293
else
9394
instance decodeRepConstructorArg :: (IsSymbol name, DecodeJson a) => DecodeRep (Rep.Constructor name (Rep.Argument a)) where
9495
decodeRepWith e j = do
95-
let name = reflectSymbol (SProxy :: SProxy name)
96+
let name = reflectSymbol (Proxy :: Proxy name)
9697
{tag, values, decodingErr} <- withTagAndValues e j name
9798
if e.unwrapSingleArguments
9899
then construct e [values] decodingErr
@@ -102,7 +103,7 @@ instance decodeRepConstructorArg :: (IsSymbol name, DecodeJson a) => DecodeRep (
102103
else
103104
instance decodeRepConstructor :: (IsSymbol name, DecodeRepArgs a) => DecodeRep (Rep.Constructor name a) where
104105
decodeRepWith e j = do
105-
let name = reflectSymbol (SProxy :: SProxy name)
106+
let name = reflectSymbol (Proxy :: Proxy name)
106107
{tag, values, decodingErr} <- withTagAndValues e j name
107108
valuesArray <- note (decodingErr $ AtKey e.valuesKey $ TypeMismatch "Array") (toArray values)
108109
construct e valuesArray decodingErr
@@ -150,7 +151,7 @@ instance decodeLiteralSumInst :: (DecodeLiteral a, DecodeLiteral b) => DecodeLit
150151

151152
instance decodeLiteralConstructor :: (IsSymbol name) => DecodeLiteral (Rep.Constructor name (Rep.NoArguments)) where
152153
decodeLiteral tagNameTransform j = do
153-
let name = reflectSymbol (SProxy :: SProxy name)
154+
let name = reflectSymbol (Proxy :: Proxy name)
154155
let decodingErr = Named name
155156
tag <- note (decodingErr $ TypeMismatch "String") (toString j)
156157
when (tag /= tagNameTransform name) $

src/Data/Argonaut/Encode/Generic/Rep.purs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,11 @@ import Data.Argonaut.Types.Generic.Rep (Encoding, defaultEncoding)
1818
import Data.Argonaut.Core (Json, fromArray, fromObject, fromString)
1919
import Data.Argonaut.Encode.Class (class EncodeJson, encodeJson)
2020
import Data.Generic.Rep as Rep
21-
import Data.Symbol (class IsSymbol, SProxy(..), reflectSymbol)
21+
import Data.Symbol (class IsSymbol, reflectSymbol)
2222
import Foreign.Object as FO
2323
import Partial.Unsafe (unsafeCrashWith)
2424
import Prim.TypeError (class Fail, Text)
25+
import Type.Proxy (Proxy(..))
2526

2627
class EncodeRep r where
2728
encodeRepWith :: Encoding -> r -> Json
@@ -39,7 +40,7 @@ instance encodeRepSum :: (EncodeRep a, EncodeRep b) => EncodeRep (Rep.Sum a b) w
3940
instance encodeRepConstructor :: (IsSymbol name, EncodeRepArgs a) => EncodeRep (Rep.Constructor name a) where
4041
encodeRepWith e (Rep.Constructor a) =
4142
fromObject
42-
$ FO.insert e.tagKey (fromString (reflectSymbol (SProxy :: SProxy name)))
43+
$ FO.insert e.tagKey (fromString (reflectSymbol (Proxy :: Proxy name)))
4344
$ FO.insert e.valuesKey values
4445
$ FO.empty
4546
where
@@ -89,9 +90,9 @@ instance encodeLiteralSumInst :: (EncodeLiteral a, EncodeLiteral b) => EncodeLit
8990
encodeLiteral tagNameTransform (Rep.Inr b) = encodeLiteral tagNameTransform b
9091

9192
instance encodeLiteralConstructor :: (IsSymbol name) => EncodeLiteral (Rep.Constructor name Rep.NoArguments) where
92-
encodeLiteral tagNameTransform _ = fromString <<< tagNameTransform $ reflectSymbol (SProxy :: SProxy name)
93+
encodeLiteral tagNameTransform _ = fromString <<< tagNameTransform $ reflectSymbol (Proxy :: Proxy name)
9394

94-
type FailMessage =
95+
type FailMessage =
9596
Text """`encodeLiteralSum` can only be used with sum types, where all of the constructors are nullary. This is because a string literal cannot be encoded into a product type."""
9697

9798
instance encodeLiteralConstructorCannotBeProduct

test/Main.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import Data.Argonaut.Encode.Class (class EncodeJson, encodeJson)
1111
import Data.Argonaut.Encode.Generic.Rep (class EncodeLiteral, encodeLiteralSumWithTransform, genericEncodeJson, genericEncodeJsonWith)
1212
import Data.Argonaut.Parser (jsonParser)
1313
import Data.Argonaut.Types.Generic.Rep (Encoding, defaultEncoding)
14-
import Data.Either (Either(..), either, fromRight)
14+
import Data.Either (Either(..), either)
1515
import Data.Generic.Rep (class Generic)
1616
import Data.Generic.Rep.Show (genericShow)
1717
import Data.String (toLower, toUpper)
1818
import Effect (Effect)
1919
import Effect.Console (log)
2020
import Effect.Exception (throw)
21-
import Partial.Unsafe (unsafePartial)
21+
import Partial.Unsafe (unsafeCrashWith)
2222
import Test.Assert (assert)
2323

2424
data Example
@@ -144,7 +144,7 @@ main = do
144144
testLiteralSumWithTransform tagNameTransform original string = do
145145
let json = encodeLiteralSumWithTransform tagNameTransform original
146146
let parsed = decodeLiteralSumWithTransform tagNameTransform json
147-
let parsed' = decodeLiteralSumWithTransform tagNameTransform <<< unsafePartial fromRight $ jsonParser string
147+
let parsed' = decodeLiteralSumWithTransform tagNameTransform <<< either unsafeCrashWith identity $ jsonParser string
148148
log $ "Original: " <> show original
149149
log $ "To JSON: " <> stringify json
150150
log $ "From JSON: " <> show parsed

0 commit comments

Comments
 (0)