Module

Codec.Json.Unidirectional.Decode.Value

Package
purescript-json-codecs
Repository
jordanmartinez/purescript-json-codecs

#decodeRefined Source

decodeRefined :: forall e extra from mid to. (mid -> Either String to) -> JsonDecoder' e extra from mid -> JsonDecoder' e extra from to
import Data.String.NonEmpty as NES

decodeRefined (note "Received empty string" <<< NES.fromString) decodeString

#decodeVoid Source

decodeVoid :: forall err extra. JsonDecoder err extra Void

#decodeJNull Source

decodeJNull :: forall e extra. JsonDecoder e extra Unit

#decodeUnitFromNull Source

decodeUnitFromNull :: forall err extra. JsonDecoder err extra Unit

#decodeUnitFromAny Source

decodeUnitFromAny :: forall e extra. JsonDecoder e extra Unit

A decoder that always succeeds, no matter what the underlying JSON is.

#decodeBoolean Source

decodeBoolean :: forall e extra. JsonDecoder e extra Boolean

#decodeNumber Source

decodeNumber :: forall e extra. JsonDecoder e extra Number

#decodeInt Source

decodeInt :: forall err extra. JsonDecoder err extra Int

#decodeChar Source

decodeChar :: forall err extra. JsonDecoder err extra Char

#decodeString Source

decodeString :: forall e extra. JsonDecoder e extra String

#decodeNonEmptyString Source

decodeNonEmptyString :: forall err extra. JsonDecoder err extra NonEmptyString

#decodeArray Source

decodeArray :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Array a)

#decodeJArray Source

decodeJArray :: forall e extra. JsonDecoder e extra (Array Json)

#decodeIndex Source

decodeIndex :: forall e extra a. Int -> JsonDecoder e extra a -> JsonDecoder' e extra (Array Json) a

Decode the value at the given index or fail if it doesn't exist.

#decodeIndex' Source

decodeIndex' :: forall e extra a. Int -> JsonDecoder' e extra (Array Json) a -> JsonDecoder e extra a -> JsonDecoder' e extra (Array Json) a

Given an index and a fallback decoder (JsonDecoder' arg), decode the value at the given index using the main decoder (JsonDecoder arg).

#decodeIndex'' Source

decodeIndex'' :: forall e extra from a. Array Json -> Int -> JsonDecoder' e extra from a -> JsonDecoder e extra a -> JsonDecoder' e extra from a

#decodeIndices Source

decodeIndices :: forall e extra a. JsonDecoder e extra a -> JsonDecoder' e extra (Array Json) (Array a)

One cannot use Traversable when implementing a DecoderFn because the Semigroup instance for the error type is stored in the DecoderFn itself and the compiler doesn't know that.

So, this gets around that limitation when one wants to traverse over an array and decode each of its elements with the given decoder.

#decodeNonEmptyArray Source

decodeNonEmptyArray :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (NonEmptyArray a)

#decodeObject Source

decodeObject :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Object a)

#decodeJObject Source

decodeJObject :: forall e extra. JsonDecoder e extra (Object Json)

#decodeField Source

decodeField :: forall e extra a. String -> JsonDecoder e extra a -> JsonDecoder' e extra (Object Json) a

Decode the value at the given key or fail if it doesn't exist.

#decodeField' Source

decodeField' :: forall e extra a. String -> JsonDecoder' e extra (Object Json) a -> JsonDecoder e extra a -> JsonDecoder' e extra (Object Json) a

Given a key and a fallback decoder (JsonDecoder' arg), decode the value at the given key using the main decoder (JsonDecoder arg).

#decodeField'' Source

decodeField'' :: forall e extra from a. Object Json -> String -> JsonDecoder' e extra from a -> JsonDecoder e extra a -> JsonDecoder' e extra from a

#decodeFields Source

decodeFields :: forall e extra a. JsonDecoder e extra a -> JsonDecoder' e extra (Object Json) (Object a)

One cannot use Traversable when implementing a DecoderFn because the Semigroup instance for the error type is stored in the DecoderFn itself and the compiler doesn't know that.

So, this gets around that limitation when one wants to traverse over an object and its keys and decode each with the given decoder.

#decodeNullable Source

decodeNullable :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Nullable a)

#decodeIdentity Source

decodeIdentity :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Identity a)

#decodeMaybeTagged Source

decodeMaybeTagged :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Maybe a)

#decodeMaybeNullable Source

decodeMaybeNullable :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (Maybe a)

#decodeEither Source

decodeEither :: forall err extra a b. JsonDecoder err extra a -> JsonDecoder err extra b -> JsonDecoder err extra (Either a b)

#decodeTuple Source

decodeTuple :: forall err extra a b. JsonDecoder err extra a -> JsonDecoder err extra b -> JsonDecoder err extra (Tuple a b)

#decodeThese Source

decodeThese :: forall err extra a b. JsonDecoder err extra a -> JsonDecoder err extra b -> JsonDecoder err extra (These a b)

#decodeNonEmpty Source

decodeNonEmpty :: forall err extra f a. JsonDecoder err extra a -> JsonDecoder err extra (f a) -> JsonDecoder err extra (NonEmpty f a)

#decodeList Source

decodeList :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (List a)

#decodeNonEmptyList Source

decodeNonEmptyList :: forall err extra a. JsonDecoder err extra a -> JsonDecoder err extra (NonEmptyList a)

#decodeMap Source

decodeMap :: forall err extra k v. Ord k => JsonDecoder err extra k -> JsonDecoder err extra v -> JsonDecoder err extra (Map k v)

#decodeSet Source

decodeSet :: forall err extra a. Ord a => JsonDecoder err extra a -> JsonDecoder err extra (Set a)

#decodeNonEmptySet Source

decodeNonEmptySet :: forall err extra a. Ord a => JsonDecoder err extra a -> JsonDecoder err extra (NonEmptySet a)

#decodeCodePoint Source

decodeCodePoint :: forall err extra. JsonDecoder err extra CodePoint

#decodeFix Source

decodeFix :: forall e extra from a. (JsonDecoder' e extra from a -> JsonDecoder' e extra from a) -> JsonDecoder' e extra from a

#PropDecoder Source

newtype PropDecoder err extra a

Instances

#RLRecordDecoder Source

newtype RLRecordDecoder :: Type -> Type -> RowList Type -> Type -> Typenewtype RLRecordDecoder err extra rowlist rec

#RLRecordDecoderBuilder Source

newtype RLRecordDecoderBuilder err extra fromRec toRec

Instances

#decodeRecord Source

decodeRecord :: forall err extra propsRl props decoderRl decoderRows outputRows. RowToList props propsRl => RowToList decoderRows decoderRl => InsertRequiredPropDecoders err extra propsRl (Record props) (Record ()) (Record decoderRows) => DecodeRowList err extra decoderRl (Record decoderRows) (Record outputRows) => Record props -> JsonDecoder err extra (Record outputRows)

#decodeRecordPrim Source

decodeRecordPrim :: forall err extra outputRows. JsonDecoder' err extra (Object Json) (Record outputRows) -> JsonDecoder err extra (Record outputRows)

#buildRecordDecoder Source

buildRecordDecoder :: forall err extra rl decoderRows. RowToList decoderRows rl => RLRecordDecoderBuilder err extra (Record ()) (Record decoderRows) -> RLRecordDecoder err extra rl (Record decoderRows)

#decodeRequiredProp Source

decodeRequiredProp :: forall sym err extra a oldRows newRows. Cons sym (PropDecoder err extra a) oldRows newRows => IsSymbol sym => Lacks sym oldRows => Proxy sym -> JsonDecoder err extra a -> RLRecordDecoderBuilder err extra (Record oldRows) (Record newRows)

#decodeOptionalProp Source

decodeOptionalProp :: forall sym err extra a oldRows newRows. Cons sym (PropDecoder err extra (Maybe a)) oldRows newRows => IsSymbol sym => Lacks sym oldRows => Proxy sym -> JsonDecoder err extra a -> RLRecordDecoderBuilder err extra (Record oldRows) (Record newRows)

#decodeRequiredProps Source

decodeRequiredProps :: forall err extra propsRl props oldRows newRows. RowToList props propsRl => InsertRequiredPropDecoders err extra propsRl (Record props) (Record oldRows) (Record newRows) => Record props -> (RLRecordDecoderBuilder err extra (Record oldRows) (Record newRows))

#decodeOptionalProps Source

decodeOptionalProps :: forall err extra propsRl props oldRows newRows. RowToList props propsRl => InsertOptionalPropDecoders err extra propsRl (Record props) (Record oldRows) (Record newRows) => Record props -> (RLRecordDecoderBuilder err extra (Record oldRows) (Record newRows))

#decodeVariant Source

decodeVariant :: forall err extra rl row out. DecodeJsonVariant err extra rl row out => RowToList row rl => DecodeErrorAccumulatorFn err extra (Object Json) (Variant out) -> Record row -> JsonDecoder err extra (Variant out)

#decodeVariantEmpty Source

decodeVariantEmpty :: forall e extra from. JsonDecoder' e extra from (Variant ())

#decodeVariantPrim Source

decodeVariantPrim :: forall e extra rows. DecodeErrorAccumulatorFn e extra (Object Json) (Variant rows) -> ((DecodeErrorAccumulatorFn e extra (Object Json) (Variant ()) -> JsonDecoder' e extra (Object Json) (Variant ())) -> (DecodeErrorAccumulatorFn e extra (Object Json) (Variant rows) -> JsonDecoder' e extra (Object Json) (Variant rows))) -> JsonDecoder e extra (Variant rows)

#decodeVariantCase Source

decodeVariantCase :: forall e extra sym a tail row. IsSymbol sym => Cons sym a tail row => Proxy sym -> Tuple (JsonDecoder' e extra (Object Json) (Variant row) -> JsonDecoder' e extra (Object Json) (Variant row)) (Either a (JsonDecoder e extra a)) -> ((DecodeErrorAccumulatorFn e extra (Object Json) (Variant tail) -> JsonDecoder' e extra (Object Json) (Variant tail)) -> (DecodeErrorAccumulatorFn e extra (Object Json) (Variant row) -> JsonDecoder' e extra (Object Json) (Variant row)))

#InsertRequiredPropDecoders Source

class InsertRequiredPropDecoders :: Type -> Type -> RowList Type -> Type -> Type -> Type -> Constraintclass InsertRequiredPropDecoders err extra propsRl propsRec oldRec newRec | err extra propsRl -> propsRec oldRec newRec where

Members

Instances

#InsertOptionalPropDecoders Source

class InsertOptionalPropDecoders :: Type -> Type -> RowList Type -> Type -> Type -> Type -> Constraintclass InsertOptionalPropDecoders err extra propsRl propsRec oldRec newRec | err extra propsRl -> propsRec oldRec newRec where

Members

Instances

#DecodeRowList Source

class DecodeRowList :: Type -> Type -> RowList Type -> Type -> Type -> Constraintclass DecodeRowList err extra rowList inputRec out | err rowList -> inputRec out where

Decodes an Object Json into a Record rows and works whether fields are required or optional.

Members

Instances

#RlRecord Source

newtype RlRecord :: Type -> Type -> RowList Type -> Row Type -> Typenewtype RlRecord e extra rowlist rows

#DecodeJsonVariant Source

class DecodeJsonVariant :: Type -> Type -> RowList Type -> Row Type -> Row Type -> Constraintclass DecodeJsonVariant e extra rowlist row out | e extra rowlist -> row out where

Members

Instances