- Add
pc/mutation-datahelper
- BREAKING:
::pc/wrap-resolveris now::pc/wrap-resolve
- Fix connect compilation on Datomic Ions
- WARNING: Don't trigger errors on connect when inputs can't be met, now it just returns
::p/continue - Add p/optional-attribute (also aliased as p/?) to mark attribute as optional (currently not used)
- Filter batch entries that don't fulfill the input needs
- Safer catch with Throwable in more places
- Processing sequence doesn't stop on placeholder joins
- Catch Throwable instead of Exception on error plugin
- Fix edge case crash on profile plugin
- Improved algorithm for resolver picking on connect, prioritize already cached resolvers
- Expose plugins in environment, allowing then to be used as part of processing
- Support
::pc/wrap-resolverplugin - CHANGE:
::pc/argsis now::pc/params(there are no features on it, so not breaking, but you must change to get future features)
- Add
sgen/query-props-generator, this returns an actual generator for a given query. - Support
sgen/transform-generatorto modify generators globally.
- Fix cljs compilation
- Generators will now strip ui namespaced keys by default (like Fulcro)
- Generators from components now use the component initialization in addition to generated props
- Fix batch queries when batch item input requires resolving
- Fix StackOverflow issue when compiling with
lein-cljsbuildorfigwheel
- Add support for mutations on connect
- Sort
pc/data->shaperesults on query - Support easy env providers
- Support
::p/mutateto define mutation - Add
pc/batch-resolverhelper - Support
::p/mutatekey for mutation setup on parser, in addition to:mutate - Consistent
ident->idvalue on generators - Add
::p/parent-join-keyto env on joins - Many fixes to specs, be happy instrumenting
- Fix
error-stron CLJS
- Breaking: batch return have a new simpler interface, check docs
- Support N+1 batch optimization on Connect
- Support mutation result customation on generators
- Fix: on connect, reader should continue if resolver doesn't return a requested value
- Fix: sync mutation errors were not returning the result, thanks Mitchel!
- Major improvement on query generators, now every part is fully customizable
- New: common.async
- Breaking: removed old async helpers from
com.wsscode.common.async - Breaking: removed async namespace
- Breaking: removed connect/spec inference, must be set on
p.connect/add - Independent parser: pathom now uses internal implementation for the parser
- Async parser: now pathom and all the built-in features have full async support
- Add:
p/ident-join-reader - Add: connect
pc/resolver-factory
- Add: specs for the EDN query syntax
- Add: specs query AST
- Add: support bounded recursive queries on join
- Add: map-db readers (read like fulcro db->tree)
- Add:
post-process-parser-pluginhelper - Add: sort-plugin
- Connect supports custom dispatch, enabling ClojureScript usage (via
::p.connect/resolver-dispatch) - Support bounded and unbounded queries to translate using
query->graphql - Support custom dispatch function to call resolvers on
Connect - Add:
p/entity-attr, non throwing version ofp/entity-attr!
- Add:
connect.testnamespace for automatic testing ofconnectresolvers - Pathom now depends on Fulcro instead of Om.next for primitives
- Error plugin support for mutations
- Add:
raise-mutation-result-pluginto unwrap the:resulton mutations, making it simpler - Fix: bug on
merge-querieswhen merging plain attribute with joined attribute - Add names to plugin functions so they get easier to see on stack traces
- Fix specs, now it can run with instrumentation on
- Add
p/raise-errorshelper - Add
fn-networkon fulcro to create networks from a function
- Plugin engine supports wrapping mutations
- Profile plugin measures mutations
- Add TransformNetwork to fulcro network
- Add
p/elide-items - Ignore
::p/reader-errorresponses on connect processing
- New:
::p/parent-querysupport, to enable siblings optimizations - Changed: in graphql ident,
by-is no longer applicable - Changed: connect index names
- Changed: namespace pathom.merge is deprecated, merge-queries lives on core now
- Renamed:
profile->flame-graphis nowprofile->nvc - Changed: now we use
:keyinstead of:dispatch-keyon map reader and map dispatcher - Entity can be an atom, will be automatically deferred when
p/entityis called. - Add
connectnamespace, connect provides a high level reader to connect attributes for automatic resolving. - Add
gennamespace containing helpers to do generation based on queries
- New:
p/parser, this supports the new plugin structure - New:
p/error-handler-plugin - New:
p/async-plugin, enabling full async without needing to use specialized readers - New:
p/request-cache-pluginto do common per-request caching p/entityaccepts second parameter to do ensure args in one step- New:
p/entity!to get an entity forcing attributes requirement, so you get better error messages when they are not available - Renamed:
placeholder-nodetoplaceholder-reader(old name still works) - New:
p/map-reader* - New:
::p/union-pathsupports computed keys and custom functions - New:
p/entity-attr!to get a single entity property (can be computed). - Deprecated:
ast-key-id
This is a major change in terms of initialization, instead of
running your om/parser now you should use p/parser that supports
the new plugin structure.
- Add async parser helpers
- Fix
js-obj-readerdefaultjs-value-transform - Use
:dispatch-keyonmap-reader - GraphQL mutation: when given empty subquery, try to infer id
- GraphQL supports ident transform
- Merge queries support
- Add Fulcro network helper - GraphQL network
- Add Fulcro network helper - Batch network
- Add elide-ast-nodes helper
- Async placeholder nodes
- Profile helpers
join-seqappends item index to::p/path- LocalNetwork helper to use local async parser
p/join-seqalways returns a vector- removed
fdeffrom specs, currently it was preventing instrumented functions to run, more investigation needed
- Support
p/joinwith arity 2, adding entity - Handle union queries on
p/join
- Initial public release