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
(Cons sym (PropDecoder err extra a) tail inputRows, DecodeRowList err extra tailList (Record tail) (Record intermediateRows), Lacks sym intermediateRows, Cons sym a intermediateRows outRows, IsSymbol sym) => DecodeRowList err extra (Cons sym (PropDecoder err extra a) tailList) (Record inputRows) (Record outRows)
#RLRecordDecoder Source
newtype RLRecordDecoder :: Type -> Type -> RowList Type -> Type -> Type
newtype RLRecordDecoder err extra rowlist rec
#RLRecordDecoderBuilder Source
newtype RLRecordDecoderBuilder err extra fromRec toRec
Instances
Semigroupoid (RLRecordDecoderBuilder err extra)
Category (RLRecordDecoderBuilder err extra)
#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 -> Constraint
class InsertRequiredPropDecoders err extra propsRl propsRec oldRec newRec | err extra propsRl -> propsRec oldRec newRec where
Members
insertRequiredPropDecoders :: RLRecordDecoder err extra propsRl propsRec -> RLRecordDecoderBuilder err extra oldRec newRec
Instances
InsertRequiredPropDecoders err extra Nil (Record ()) (Record oldRows) (Record oldRows)
(Cons sym (JsonDecoder err extra a) propsTail props, InsertRequiredPropDecoders err extra propsRlTail (Record propsTail) (Record oldRows) (Record intermediateRows), Lacks sym intermediateRows, Cons sym (PropDecoder err extra a) intermediateRows newRows, IsSymbol sym) => InsertRequiredPropDecoders err extra (Cons sym (JsonDecoder err extra a) propsRlTail) (Record props) (Record oldRows) (Record newRows)
#InsertOptionalPropDecoders Source
class InsertOptionalPropDecoders :: Type -> Type -> RowList Type -> Type -> Type -> Type -> Constraint
class InsertOptionalPropDecoders err extra propsRl propsRec oldRec newRec | err extra propsRl -> propsRec oldRec newRec where
Members
insertOptionalPropDecoders :: RLRecordDecoder err extra propsRl propsRec -> RLRecordDecoderBuilder err extra oldRec newRec
Instances
InsertOptionalPropDecoders err extra Nil (Record ()) (Record oldRows) (Record oldRows)
(Cons sym (JsonDecoder err extra a) propsTail props, InsertOptionalPropDecoders err extra propsRlTail (Record propsTail) (Record oldRows) (Record intermediateRows), Lacks sym intermediateRows, Cons sym (PropDecoder err extra (Maybe a)) intermediateRows newRows, IsSymbol sym) => InsertOptionalPropDecoders err extra (Cons sym (JsonDecoder err extra a) propsRlTail) (Record props) (Record oldRows) (Record newRows)
#DecodeRowList Source
class DecodeRowList :: Type -> Type -> RowList Type -> Type -> Type -> Constraint
class 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
decodeRowList :: RLRecordDecoder err extra rowList inputRec -> JsonDecoder' err extra (Object Json) out
Instances
DecodeRowList err extra Nil (Record ()) (Record ())
(Cons sym (PropDecoder err extra a) tail inputRows, DecodeRowList err extra tailList (Record tail) (Record intermediateRows), Lacks sym intermediateRows, Cons sym a intermediateRows outRows, IsSymbol sym) => DecodeRowList err extra (Cons sym (PropDecoder err extra a) tailList) (Record inputRows) (Record outRows)
#DecodeJsonVariant Source
class DecodeJsonVariant :: Type -> Type -> RowList Type -> Row Type -> Row Type -> Constraint
class DecodeJsonVariant e extra rowlist row out | e extra rowlist -> row out where
Members
decodeJsonVariant :: RlRecord e extra rowlist row -> ((DecodeErrorAccumulatorFn e extra (Object Json) (Variant ()) -> JsonDecoder' e extra (Object Json) (Variant ())) -> (DecodeErrorAccumulatorFn e extra (Object Json) (Variant out) -> JsonDecoder' e extra (Object Json) (Variant out)))
Instances
DecodeJsonVariant e extra Nil () ()
(Cons sym (Tuple (JsonDecoder' e extra (Object Json) (Variant out) -> JsonDecoder' e extra (Object Json) (Variant out)) (Either a (JsonDecoder e extra a))) codecRows' codecRows, DecodeJsonVariant e extra tail codecRows' out', Cons sym a out' out, IsSymbol sym) => DecodeJsonVariant e extra (Cons sym (Tuple (JsonDecoder' e extra (Object Json) (Variant row) -> JsonDecoder' e extra (Object Json) (Variant row)) (Either a (JsonDecoder e extra a))) tail) codecRows out
- Modules
- Codec.
Codec - Codec.
Decoder - Codec.
Decoder. Qualified - Codec.
Json. Bidirectional. Class - Codec.
Json. Bidirectional. Value - Codec.
Json. Errors. AnsiDodoError - Codec.
Json. Errors. DecodeMessages - Codec.
Json. Errors. NoError - Codec.
Json. Errors. PlainDodoError - Codec.
Json. Errors. PrimitiveJsonError - Codec.
Json. Errors. Tree - Codec.
Json. JsonCodec - Codec.
Json. JsonDecoder - Codec.
Json. Newtypes - Codec.
Json. Types - Codec.
Json. Unidirectional. Decode. Class - Codec.
Json. Unidirectional. Decode. Value - Codec.
Json. Unidirectional. Encode. Class - Codec.
Json. Unidirectional. Encode. Value - Data.
V. Semigroup. Qualified