- Apollo mode, enabled with
-apollo-mode
, which adds__typename
to all fields. (#65)
- "File exists mkdir" error on Windows. (#68)
0.2.8 – 2018–10–31
- Interface support! With some restrictions, you can now query interface fields and have them decoded into polymorphic variants, similar to how unions work. (#56)
@bsRecord
on inline fragments on unions did not decode the selection into a record (#60)- Type errors from
@bsRecord
are now reported on their correct source location (#42)
0.2.7 – 2018–08–08
- Large performance improvements when dealing with large schemas (#43)
- The parsed and decoded schema file is now cached in a format that's faster to read
- The schema is only read when it's needed, reducing overhead for files containing no queries
0.2.6 – 2018–07–24
- "Production mode" which reduces sizes of error messages, which in turn makes
the generated code quite a bit smaller. Enabled when the
NODE_ENV
environment variable is set toproduction
. esy.json
added to better support esy based workflows (#45)- Rudimentary external fragment support using a
@bsField
directive. This is experimental and will not be documented until the feature has been vetted and tested.
- Don't emit
json_of_array
orjson_of_optional
. This removes some warnings that could stem from the generated code (#7) - Be very precise when to emit a
rec
flag for recursive input types. This removes even more warnings that could stem from the generated code - The statically linked binary on Linux was linked with Glibc, which does not support static linking (#46)
0.2.5 – 2018-07–10
@skip
and@include
directives were not properly decoded (#40)
0.2.4 – 2018-06–19
- Infrastructure for GraphQL validations with some rudimentary ones implemented
- Scalars must not contain subselections (#32)
- All variables must be used
- All field argument names must exist
- Parsing subscription queries (#33)
- Emit as many errors as possible instead of failing at the first one
- Extremely limited external fragment support; selections containing only a fragment spread will now defer parsing to that fragment. This is experimental and not properly documented until it's been vetted and tested.
- Improved runtime error messages for responses that fail to match the expected schema
0.2.3 – 2018-05–22
- Re-expose
query
constant to avoid breaking dependencies (#29)
0.2.2 – 2018-05–19
- Broken compatibility with Node older than 8.5.0 (#30, #27)
__typename
as a valid field on any object (#31)- Rename
query
constant to avoid clashing with the argument names ofmake
(#29) - Windows support by copying the PPX to
ppx.exe
(#25)
0.2.1 – 2018-02–18
- Apollo AST serialization mismatch with
graphql-tag
(#23)
0.2.0 – 2018-02–10
- Stop distributing the PPX on OPAM and distribute pre-built Windows, macOS, and Linux binaries through NPM instead.
-H
argument tosend-introspection-query
to pass headers along to the server (#21)
0.0.4 – 2018-01–21
- The query can be serialized to Apollo's
AST, identical to the one
graphql-tag
uses. - A query module exposes a type
t
representing the type of a decoded query - Another constructor
makeWithVariables
that takes a singleJs.t
object argument rather than labelled arguments
- Using
Js.Array.map
instead ofArray.map
to keep generated code size down
0.0.3 – 2017-10–14
- Enums can be used as input values (#5)
- Input objects can be used (#6)
- Unions can be decoded into polymorphic variants
- Objects can be decoded into records using
@bsRecord
- Any field can be decoded using a custom function with
@bsDecoder
@skip
and@include
directives will now force the type to be nullable
- Parsing directives could cause the PPX to crash
- Trying to decode floats and ints caused type errors (#5)
0.0.2 – 2017-09–09
- Query re-printer not properly printing variables (#3)
0.0.1 – 2017-08–13
- Initial release on OPAM
- Enums converted into polymorphic variants
- Objects converted into
Js.t
objects - Floats, ints, booleans, and strings converted into their corresponding native type
@bsVariant
directive added