All notable changes to this project will be documented in this file. This change log follows the conventions of keepachangelog.com.
- Aliases at field level #23
- Subscription as valid operation type #21
- Updated clojure to 1.9.0
- Support for unions. Pull request #16
- Variable defaults
_typename
metafield support- Mutation support
- Updated clojurescript to 1.9.946
- Updated clojure to 1.9.0-beta2
- Support for queries returning scalars. Pull request #10
- Arguments for fields on all levels of query are allowed.
All you need to do is Just wrap field's keyword and args map in vector, like
{:venia/queries [[:employee [[:name {:preferNickname true}] :address]]]}
- arg->str for PersistentHashMap in cljs. Pull request #11
- arg->str for List, LazySeq and IndexedSeq. Pull request #12
- Updated clojurescript version to 1.9.908
- Fragment and variable validation
- Args only case for nested fields
- Support for variables
Breaking changes:
- Large refactor of core namespace - API changes
Moved away from huge nested vectors as query definitions to neat query map definitions. After all, simplicity is all that matters. Now, queries are defined like this:
{:venia/operation {:operation/type :query
:operation/name "employeeQuery"}
:venia/variables [{:variable/name "id"
:variable/type :Int}
{:variable/name "name"
:variable/type :String}]
:venia/queries [{:query/data [:employee {:id :$id
:active true
:name :$name}
:fragment/comparisonFields]
:query/alias :workhorse}
{:query/data [:employee {:id :$id
:active false}
:fragment/comparisonFields]
:query/alias :boss}]
:venia/fragments [{:fragment/name "comparisonFields"
:fragment/type :Worker
:fragment/fields [:name :address [:friends [:name :email]]]}]}
:venia/queries
is only one required key, others are optional. However, rest of data needs to be valid as well if added.
Query's data can be also defined as simple vector:
{:venia/queries [[:employee {:id 1 :active true} [:name :address [:friends {:id 1} [:name :email]]]]]}
- Fragments functionality updated to be more explicit
Notice how fragments are defined and referenced in code example above.
- Updated clojure and clojurescript to 1.9.0-alpha17 and 1.9.562
- 'nil' argument is serialized to 'null'
- Docstrings to functions in core namespace
- Fix ArgumentFormatter in cljs
- Fux throw-ex in cljs
- Nested fields can also have arguments
Initial release