Skip to content

Commit 948a54b

Browse files
committed
Add documentation comments
1 parent aa83414 commit 948a54b

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

src/Data/Argonaut/Core.purs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,24 +114,31 @@ verbJsonType :: forall a b. b -> (a -> b) -> (b -> (a -> b) -> Json -> b) -> Jso
114114
verbJsonType def f g = g def f
115115

116116
-- Tests
117+
117118
isJsonType :: forall a. (Boolean -> (a -> Boolean) -> Json -> Boolean) -> Json -> Boolean
118119
isJsonType = verbJsonType false (const true)
119120

121+
-- | Check if the provided `Json` is the `null` value
120122
isNull :: Json -> Boolean
121123
isNull = isJsonType caseJsonNull
122124

125+
-- | Check if the provided `Json` is a `Boolean`
123126
isBoolean :: Json -> Boolean
124127
isBoolean = isJsonType caseJsonBoolean
125128

129+
-- | Check if the provided `Json` is a `Number`
126130
isNumber :: Json -> Boolean
127131
isNumber = isJsonType caseJsonNumber
128132

133+
-- | Check if the provided `Json` is a `String`
129134
isString :: Json -> Boolean
130135
isString = isJsonType caseJsonString
131136

137+
-- | Check if the provided `Json` is an `Array`
132138
isArray :: Json -> Boolean
133139
isArray = isJsonType caseJsonArray
134140

141+
-- | Check if the provided `Json` is an `Object`
135142
isObject :: Json -> Boolean
136143
isObject = isJsonType caseJsonObject
137144

@@ -144,60 +151,86 @@ toJsonType
144151
-> Maybe a
145152
toJsonType = verbJsonType Nothing Just
146153

154+
-- | Convert `Json` to the `Unit` value if the `Json` is the null value
147155
toNull :: Json -> Maybe Unit
148156
toNull = toJsonType caseJsonNull
149157

158+
-- | Convert `Json` to a `Boolean` value, if the `Json` is a boolean.
150159
toBoolean :: Json -> Maybe Boolean
151160
toBoolean = toJsonType caseJsonBoolean
152161

162+
-- | Convert `Json` to a `Number` value, if the `Json` is a number.
153163
toNumber :: Json -> Maybe Number
154164
toNumber = toJsonType caseJsonNumber
155165

166+
-- | Convert `Json` to a `String` value, if the `Json` is a string.
156167
toString :: Json -> Maybe String
157168
toString = toJsonType caseJsonString
158169

170+
-- | Convert `Json` to an `Array` of `Json` values, if the `Json` is an array.
159171
toArray :: Json -> Maybe (Array Json)
160172
toArray = toJsonType caseJsonArray
161173

174+
-- | Convert `Json` to an `Object` of `Json` values, if the `Json` is an array.
162175
toObject :: Json -> Maybe (Object Json)
163176
toObject = toJsonType caseJsonObject
164177

165178
-- Encoding
166179

180+
-- | Construct `Json` from a `Boolean` value
167181
foreign import fromBoolean :: Boolean -> Json
182+
183+
-- | Construct `Json` from a `Number` value
168184
foreign 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`.
169188
foreign import fromString :: String -> Json
189+
190+
-- | Construct `Json` from an array of `Json` values
170191
foreign import fromArray :: Array Json -> Json
192+
193+
-- | Construct `Json` from an object with `Json` values
171194
foreign import fromObject :: Object Json -> Json
172195

173196
-- Defaults
174197

198+
-- | The JSON null value represented as `Json`
175199
foreign import jsonNull :: Json
176200

201+
-- | The true boolean value represented as `Json`
177202
jsonTrue :: Json
178203
jsonTrue = fromBoolean true
179204

205+
-- | The false boolean value represented as `Json`
180206
jsonFalse :: Json
181207
jsonFalse = fromBoolean false
182208

209+
-- | The number zero represented as `Json`
183210
jsonZero :: Json
184211
jsonZero = fromNumber 0.0
185212

213+
-- | An empty string represented as `Json`
186214
jsonEmptyString :: Json
187215
jsonEmptyString = fromString ""
188216

217+
-- | An empty array represented as `Json`
189218
jsonEmptyArray :: Json
190219
jsonEmptyArray = fromArray []
191220

221+
-- | An empty object represented as `Json`
192222
jsonEmptyObject :: Json
193223
jsonEmptyObject = fromObject Obj.empty
194224

225+
-- | Constructs a `Json` array value containing only the provided value
195226
jsonSingletonArray :: Json -> Json
196227
jsonSingletonArray j = fromArray [j]
197228

229+
-- | Constructs a `Json` object value containing only the provided key and value
198230
jsonSingletonObject :: String -> Json -> Json
199231
jsonSingletonObject key val = fromObject (Obj.singleton key val)
200232

233+
-- | Converts a `Json` value to a JSON string.
201234
foreign import stringify :: Json -> String
202235

203236
foreign import _caseJson

src/Data/Argonaut/Gen.purs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import Data.NonEmpty ((:|))
1212
import Data.String.Gen (genUnicodeString)
1313
import Foreign.Object as Obj
1414

15+
-- | A generator for `Json` values. Especially useful for writing property-based
16+
-- | tests.
1517
genJson :: forall m. MonadGen m => MonadRec m => Lazy (m J.Json) => m J.Json
1618
genJson = Gen.resize (min 5) $ Gen.sized genJson'
1719
where

src/Data/Argonaut/Parser.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ import Data.Function.Uncurried (Fn3, runFn3)
66

77
foreign import _jsonParser :: forall a. Fn3 (String -> a) (Json -> a) String a
88

9+
-- | Parse a JSON string, constructing the `Json` value described by the string.
910
jsonParser :: String -> Either String Json
1011
jsonParser j = runFn3 _jsonParser Left Right j

0 commit comments

Comments
 (0)