@@ -114,24 +114,31 @@ verbJsonType :: forall a b. b -> (a -> b) -> (b -> (a -> b) -> Json -> b) -> Jso
114114verbJsonType def f g = g def f
115115
116116-- Tests
117+
117118isJsonType :: forall a . (Boolean -> (a -> Boolean ) -> Json -> Boolean ) -> Json -> Boolean
118119isJsonType = verbJsonType false (const true )
119120
121+ -- | Check if the provided `Json` is the `null` value
120122isNull :: Json -> Boolean
121123isNull = isJsonType caseJsonNull
122124
125+ -- | Check if the provided `Json` is a `Boolean`
123126isBoolean :: Json -> Boolean
124127isBoolean = isJsonType caseJsonBoolean
125128
129+ -- | Check if the provided `Json` is a `Number`
126130isNumber :: Json -> Boolean
127131isNumber = isJsonType caseJsonNumber
128132
133+ -- | Check if the provided `Json` is a `String`
129134isString :: Json -> Boolean
130135isString = isJsonType caseJsonString
131136
137+ -- | Check if the provided `Json` is an `Array`
132138isArray :: Json -> Boolean
133139isArray = isJsonType caseJsonArray
134140
141+ -- | Check if the provided `Json` is an `Object`
135142isObject :: Json -> Boolean
136143isObject = isJsonType caseJsonObject
137144
@@ -144,60 +151,86 @@ toJsonType
144151 -> Maybe a
145152toJsonType = verbJsonType Nothing Just
146153
154+ -- | Convert `Json` to the `Unit` value if the `Json` is the null value
147155toNull :: Json -> Maybe Unit
148156toNull = toJsonType caseJsonNull
149157
158+ -- | Convert `Json` to a `Boolean` value, if the `Json` is a boolean.
150159toBoolean :: Json -> Maybe Boolean
151160toBoolean = toJsonType caseJsonBoolean
152161
162+ -- | Convert `Json` to a `Number` value, if the `Json` is a number.
153163toNumber :: Json -> Maybe Number
154164toNumber = toJsonType caseJsonNumber
155165
166+ -- | Convert `Json` to a `String` value, if the `Json` is a string.
156167toString :: Json -> Maybe String
157168toString = toJsonType caseJsonString
158169
170+ -- | Convert `Json` to an `Array` of `Json` values, if the `Json` is an array.
159171toArray :: Json -> Maybe (Array Json )
160172toArray = toJsonType caseJsonArray
161173
174+ -- | Convert `Json` to an `Object` of `Json` values, if the `Json` is an array.
162175toObject :: Json -> Maybe (Object Json )
163176toObject = toJsonType caseJsonObject
164177
165178-- Encoding
166179
180+ -- | Construct `Json` from a `Boolean` value
167181foreign import fromBoolean :: Boolean -> Json
182+
183+ -- | Construct `Json` from a `Number` value
168184foreign import fromNumber :: Number -> Json
185+
186+ -- | Construct `Json` from a `String` value. If you would like to parse a string
187+ -- | of JSON into valid `Json`, see `jsonParser`.
169188foreign import fromString :: String -> Json
189+
190+ -- | Construct `Json` from an array of `Json` values
170191foreign import fromArray :: Array Json -> Json
192+
193+ -- | Construct `Json` from an object with `Json` values
171194foreign import fromObject :: Object Json -> Json
172195
173196-- Defaults
174197
198+ -- | The JSON null value represented as `Json`
175199foreign import jsonNull :: Json
176200
201+ -- | The true boolean value represented as `Json`
177202jsonTrue :: Json
178203jsonTrue = fromBoolean true
179204
205+ -- | The false boolean value represented as `Json`
180206jsonFalse :: Json
181207jsonFalse = fromBoolean false
182208
209+ -- | The number zero represented as `Json`
183210jsonZero :: Json
184211jsonZero = fromNumber 0.0
185212
213+ -- | An empty string represented as `Json`
186214jsonEmptyString :: Json
187215jsonEmptyString = fromString " "
188216
217+ -- | An empty array represented as `Json`
189218jsonEmptyArray :: Json
190219jsonEmptyArray = fromArray []
191220
221+ -- | An empty object represented as `Json`
192222jsonEmptyObject :: Json
193223jsonEmptyObject = fromObject Obj .empty
194224
225+ -- | Constructs a `Json` array value containing only the provided value
195226jsonSingletonArray :: Json -> Json
196227jsonSingletonArray j = fromArray [j]
197228
229+ -- | Constructs a `Json` object value containing only the provided key and value
198230jsonSingletonObject :: String -> Json -> Json
199231jsonSingletonObject key val = fromObject (Obj .singleton key val)
200232
233+ -- | Converts a `Json` value to a JSON string.
201234foreign import stringify :: Json -> String
202235
203236foreign import _caseJson
0 commit comments