From a00af320fe623e7699f68c14038d14f36837fa62 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:04:17 +0100 Subject: [PATCH 1/4] Update packages.dhall --- packages.dhall | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages.dhall b/packages.dhall index 582d6d3..2fae6a5 100644 --- a/packages.dhall +++ b/packages.dhall @@ -1,4 +1,5 @@ let upstream = - https://raw.githubusercontent.com/purescript/package-sets/prepare-0.15/src/packages.dhall + https://github.com/purescript/package-sets/releases/download/psc-0.15.2-20220612/packages.dhall + sha256:9876aee1362a5dac10061768c68a7ecc4a59ca9267c3760f7d43ea9d3812ec11 in upstream From 0f586ee81cac6c4ec058bc59a7f956ec3e1e4bb0 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Mon, 13 Jun 2022 11:04:32 +0100 Subject: [PATCH 2/4] Add fromJson and toJson --- src/Data/Argonaut/Decode.purs | 24 ++++++++++++------------ src/Data/Argonaut/Encode.purs | 22 +++++++++++----------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/Data/Argonaut/Decode.purs b/src/Data/Argonaut/Decode.purs index 27dffdf..df88fa5 100644 --- a/src/Data/Argonaut/Decode.purs +++ b/src/Data/Argonaut/Decode.purs @@ -1,20 +1,20 @@ module Data.Argonaut.Decode - ( module Data.Argonaut.Decode.Class + ( fromJson + , module Data.Argonaut.Decode.Class , module Data.Argonaut.Decode.Combinators , module Data.Argonaut.Decode.Error , module Data.Argonaut.Decode.Parser - ) where + ) + where + +import Prelude import Data.Argonaut.Decode.Class (class DecodeJson, decodeJson) -import Data.Argonaut.Decode.Combinators - ( getField - , getFieldOptional - , getFieldOptional' - , defaultField - , (.:) - , (.:!) - , (.:?) - , (.!=) - ) +import Data.Argonaut.Decode.Combinators (getField, getFieldOptional, getFieldOptional', defaultField, (.:), (.:!), (.:?), (.!=)) import Data.Argonaut.Decode.Error (JsonDecodeError(..), printJsonDecodeError) import Data.Argonaut.Decode.Parser (parseJson) +import Data.Either (Either) + +-- | Parse and decode a json in one step. +fromJson :: forall json. DecodeJson json => String -> Either JsonDecodeError json +fromJson = parseJson >=> decodeJson diff --git a/src/Data/Argonaut/Encode.purs b/src/Data/Argonaut/Encode.purs index edd341d..48ed2eb 100644 --- a/src/Data/Argonaut/Encode.purs +++ b/src/Data/Argonaut/Encode.purs @@ -1,16 +1,16 @@ module Data.Argonaut.Encode ( module Data.Argonaut.Encode.Class , module Data.Argonaut.Encode.Combinators - ) where + , toJson + ) + where + +import Prelude +import Data.Argonaut.Core (stringify) import Data.Argonaut.Encode.Class (class EncodeJson, encodeJson) -import Data.Argonaut.Encode.Combinators - ( assoc - , assocOptional - , extend - , extendOptional - , (:=) - , (:=?) - , (~>) - , (~>?) - ) +import Data.Argonaut.Encode.Combinators (assoc, assocOptional, extend, extendOptional, (:=), (:=?), (~>), (~>?)) + +-- | Encode and stringify a type in one step. +toJson :: forall t. EncodeJson t => t -> String +toJson = encodeJson >>> stringify From d1a0d8e1a817619255c8348c0c63876ffc9d85bf Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Thu, 23 Jun 2022 08:22:35 +0100 Subject: [PATCH 3/4] Fix formatting --- src/Data/Argonaut/Decode.purs | 3 +-- src/Data/Argonaut/Encode.purs | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Data/Argonaut/Decode.purs b/src/Data/Argonaut/Decode.purs index df88fa5..82f7cfd 100644 --- a/src/Data/Argonaut/Decode.purs +++ b/src/Data/Argonaut/Decode.purs @@ -4,8 +4,7 @@ module Data.Argonaut.Decode , module Data.Argonaut.Decode.Combinators , module Data.Argonaut.Decode.Error , module Data.Argonaut.Decode.Parser - ) - where + ) where import Prelude diff --git a/src/Data/Argonaut/Encode.purs b/src/Data/Argonaut/Encode.purs index 48ed2eb..037ddda 100644 --- a/src/Data/Argonaut/Encode.purs +++ b/src/Data/Argonaut/Encode.purs @@ -2,8 +2,7 @@ module Data.Argonaut.Encode ( module Data.Argonaut.Encode.Class , module Data.Argonaut.Encode.Combinators , toJson - ) - where + ) where import Prelude From 6adce702de0d4558e866f811a0190961340d3f99 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Thu, 23 Jun 2022 14:51:11 +0100 Subject: [PATCH 4/4] Rename to fromJsonString and toJsonString --- CHANGELOG.md | 1 + src/Data/Argonaut/Decode.purs | 6 +++--- src/Data/Argonaut/Encode.purs | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bf8597f..3ca217b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `fromJsonString` and `toJsonString` (#109 by @sigma-andex) Bugfixes: diff --git a/src/Data/Argonaut/Decode.purs b/src/Data/Argonaut/Decode.purs index 82f7cfd..29bfda0 100644 --- a/src/Data/Argonaut/Decode.purs +++ b/src/Data/Argonaut/Decode.purs @@ -1,5 +1,5 @@ module Data.Argonaut.Decode - ( fromJson + ( fromJsonString , module Data.Argonaut.Decode.Class , module Data.Argonaut.Decode.Combinators , module Data.Argonaut.Decode.Error @@ -15,5 +15,5 @@ import Data.Argonaut.Decode.Parser (parseJson) import Data.Either (Either) -- | Parse and decode a json in one step. -fromJson :: forall json. DecodeJson json => String -> Either JsonDecodeError json -fromJson = parseJson >=> decodeJson +fromJsonString :: forall json. DecodeJson json => String -> Either JsonDecodeError json +fromJsonString = parseJson >=> decodeJson diff --git a/src/Data/Argonaut/Encode.purs b/src/Data/Argonaut/Encode.purs index 037ddda..fb0e970 100644 --- a/src/Data/Argonaut/Encode.purs +++ b/src/Data/Argonaut/Encode.purs @@ -1,7 +1,7 @@ module Data.Argonaut.Encode ( module Data.Argonaut.Encode.Class , module Data.Argonaut.Encode.Combinators - , toJson + , toJsonString ) where import Prelude @@ -11,5 +11,5 @@ import Data.Argonaut.Encode.Class (class EncodeJson, encodeJson) import Data.Argonaut.Encode.Combinators (assoc, assocOptional, extend, extendOptional, (:=), (:=?), (~>), (~>?)) -- | Encode and stringify a type in one step. -toJson :: forall t. EncodeJson t => t -> String -toJson = encodeJson >>> stringify +toJsonString :: forall t. EncodeJson t => t -> String +toJsonString = encodeJson >>> stringify