- [breaking] PPX: Code to decode polyvariants doesn't use an additional
_poly
function which was also generated by the PPX. InsteadUnexpected_variant
error is used to signal that next decoder should be tried. (#32) - [breaking] Json.Decode.DecodeError exception now contains a variant type as payload instead of a string. (#32)
- [breaking] PPX: Rename
[@json.as]
to[@json.name]
(#23) - [breaking] PPX: Drop special encoding for enumeration-like variants (variants with each constructor having no arguments). (#26)
- [breaking] PPX: change JSON representation of polyvariants, make it compatible with ppx_deriving_yojson and ppx_yojson_conv (#27)
- [breaking] PPX: Consistent use of exceptions in runtime. (#28)
- PPX:
[@@deriving json]
now can be used within signatures (this includes.mli
files). (#32) - PPX: Add runtime for
result
(#13) - PPX: Add
yojson
as runtime dep for the native version (#15) - PPX: add
[@@json_string]
for deriving converters to/from JSON strings directly (#30) - PPX: add support for
int64
in the runtime (#33) - PPX: remove
string_to_json
usage on js side (#35) - PPX: Add array functions to native runtime (#37)
- PPX: Qualify usages of infix operators with
Stdlib
(#11) - Add
melange-json-native
package (#12) - Add
[@drop_default]
attribute to dropNone
values from JSON representation (#17)
- Port PPX from @andreypopp/ppx_deriving_json (#10)
- Require Melange v3 (#6)
- Initial release
- Rewrote
Encode.list
to be stack-safe and much faster.
- Added
Json.Decode.id
- Dual licensed as LGPL-3.0 and MPL-2.0. MPL is mostly equivalent to LGPL but relaxes its restriction on linking, which works better with the JavaScript packaging and distribution model.
- Removed deprecated
arrayOf
encoder - Renamed
dict
encoder tojsonDict
- Added new
dict
encoder that takes an additional encoder argument used to encode the contained values, and so it's consistent with the respectivedict
decoder.
- Bumped
bs-platform
peer dependency to 5.0.4 to stop the compiler's complaining.
- Replace usage of
Js.Date.toJSON
withJs.Date.toJSONUsafe
, which is exactly the same, just to avoid deprecation warnings for end users (Thanks Bob!) - Requires
bs-platform
>= 4.0.2
- Removed
Json.Decode.boolean
,Json.Encode.boolean
,Json.Encode.booleanArray
- Requires
bs-platform
>= 3.0.0
- Reverted commits that broke backwards compatibility despite only affecting the implementation
- Deprecated
Json.Decode.boolean
,Json.Encode.boolean
,Json.Encode.booleanArray
- Added
Json.Encode.boolArray
- Added
Json.Encode.char
andJson.Decode.char
- Added "stack traces" to higher-order decoders, making it easier to find the location of an error.
- Moved repository from
reasonml-community/bs-json
toglennsl/bs-json
- Renamed NPM package from
bs-json
to@glennsl/bs-json
- Replaced
Json.Encoder.array
withJson.Encode.arrayOf
renamed toarray
. DeprecatedarrayOf
alias. - Added
Json.parse
,Json.parseOrRaise
,Json.stringify
- Added
date
encoder and decoder - Added
tuple2
/tuple3
/tuple4
encoders and decoders - Fixed bug where js integers > 32-bit were rejected as integers by Json.Decode.int (#15)
- Added
Json.Encode.bool
- Added
Json.Encode.pair
- Added
Json.Encode.withDefault
- Added
Json.Encode.nullable
- Added
Json.Encode.arrayOf
- Added
Json.Encode.jsonArray
as replacement forJson.Encode.array
- Deprecated
Json.Encode.array
- Fixed embarrassing bug where an API was used that isn't available on IE (honestly more embarrassed on behalf of IE though)
- Added
Json.Decode.pair
- Added
Json.Encode.list
- Breaking: Renamed
Json.Encode.object_
toJson.Encode.dict
- Added
Json.Encode.object_
taking a list of properties instead of a Json.Dict.t as before