- Fix placeholders using different parameters
- Idents run in parallel when using parallel processor (issue #208)
- Fix wrong input order on nested resolvers (issue #205)
- Fix
pf.eql/map-select
case on map container at query - Fix spec for
pco/?
- Merge params when merging nodes on planner (issue #216)
- Ensure all instances of the same resolver in the same graph have the same params (issue #211)
- In case of priority draw, pick the node with the most number of inputs already available (issue #202)
- Parameterized attributes on placeholders are not processed at during parent planning
- Add
::pcp/wrap-compute-run-graph
plugin entry point
- BREAKING:
::p.error/missing-output
is now converged to::p.error/attribute-missing
(issue #149) - BREAKING: Placeholders won't override entity data via params by default (issue #187)
- New
pbip/placeholder-data-params
plugin to get back the placeholder entity data behavior - Mutation not found error goes through
::pcr/wrap-mutate
, allowing the user to capture and transform the not found error case - Remove
Insufficient data calling resolver ...
error due to problematic behavior with optionals (issue #192) - Improve runner error messages, elide
at path
part of the message when at root - Fix
process-one
return value when itsfalse
(previously it would returnnil
instead offalse
) (issue #195) - Include failing key on smart map errors
- Support
applyTo
on resolvers and mutations (issue #203)
- Fix map container handling on runner (issue #176)
pf.eql/data->shape
now takes::pcr/map-container?
into account- Disregard ident values on cache keys for the planner (issue #182)
- Fix stack overflow on planning nested attribute cycles on dynamic resolvers (issue #179)
- Fix name reporting on invalid config for resolvers and mutations (issue #181)
- Fix missing data on nested batches (issues #173 & #177)
- Fix planning issue when optimizing
OR
subpaths (issue #170) - Index nested attributes (issue #167)
- Fix multiple inclusions of attribute error resolver (issue #175)
- Fix stack overflow on nested attribute cycles (issue #168)
- Fix batch waiting execution order (issue #169)
- Fix
:or
destructuring inference when mapping it to a symbol destructuring
- Fix error when user requests
::pcr/attribute-errors
in lenient mode - In
process-one
helpers, when the value is collection it gets the run stats from the parent - Add support for
:or
keyword ondefresolver
anddefmutation
args, values in:or
will be flagged as optional - Set
::pco/inferred-params
when params are inferred - Instead of overriding
::pco/input
or::pco/params
when explicitly set, now Pathom will merge that with the inferred input/params - Issue 159 - Fix placeholder nodes on dynamic resolvers
- Fix ident processing on serial runner
- Fix planning optimization on merging sibling nodes with OR parent
- New branch optimizations are now opt-in via
::pcp/experimental-branch-optimizations
flag at env - Fix
::pcr/wrap-mutation-error
, now working in all runners
- Add support for
::pcr/wrap-merge-attribute
hook in async and parallel runners - Add support for
::pcr/wrap-merge-attribute
hook on idents (all runners) - Fix issue #152 missing shape check when data value is nil
- Optimize AND siblings with same branches
- Optimize OR siblings with same branches 🎉
- Optimize AND branch that has same branch structure as parent
- Fix: Exceptions that occur inside
p.a.eql/process
in JVM won't include the entire stacktrace anymore. (issue #142) - Add
::p.error/error-data
to datafied error object - Optimize nested AND branches on planner
- Fix nested optional key throws "All paths from an OR node failed" (issue #139)
- Fix spec issues with mutations
- Fix async environment on async boundary interface
- Fix nested check on deep dynamic resolver requirements
- Fix bad optimization when invalid sub-query isn't the first branch option of a path
- Fix multiple calls to same mutation (issue #137)
- BREAKING: Mutations are not part of
index-ast
anymore - BREAKING:
::pcp/mutations
now contains the full call AST instead of the mutation key - Fix Optional key throws "All paths from an OR node failed" (issue #138)
- Fix unnecessary resolver calls due to merging OR branches optimization
- Add check on OR nodes to test for expectation done before start running
- Upgrade guardrails to have its own Kondo configuration
- Fix boundary interface detection of lenient mode to output stats
- Run stats now includes details for transient (implicit) dependencies as well
- Improve parallelism with placeholders
- Placeholders with params are deal as a new entity (instead of an extension of the parent)
- Add support for
::pco/batch-chunk-size
to how many items to batch at once - Batch process retains input order when making batch calls
::pcp/expects
now can figure implicit attributes on static resolver nested lookup- Planner now removes path options that can't fulfill the sub-query
- New priority sort algorithm. Thanks to @mszabo!
- Optimize nested or nodes, pulling nested branches into parent OR node
- Add weight sort feature to load balance between OR branches
- Fix issue #107 regarding batch + nested optional inputs
- Add
pf.eql/seq-data->query
to find shape of a combined collection - Computation of
::pcp/expects
on static resolvers now includes data about nested expectations
- Bumped Promesa to 6.1.436
- INTERNAL BREAK: the internal
plan-and-run!
from all runners now return env instead of the graph plan - Runner exceptions now return a wrapped error that includes environment data
- Boundary interface errors are always data
- Boundary interface omit stats by default, open with the :pathom/include-stats? flag on the request
- Add
pbip/env-wrap-plugin
- Remove debugging tap
- Fix error trigger when a dependency of some optional attribute fails (bug #126)
- Fix planning errors on optional nested inputs (bug #127)
- Improve optimization for single item branch, now support moving run-next to the child's edge
- On union process, in case the item doesn't match any branch its turned into nil (and removed in case of union sequences)
- Fix bug when checking for entity required data, OR cases could trigger a false positive
- Fix
Throwable
warning on CLJS in parallel parser - Fix
log
source to avoid*file*
warning
- Add
pbip/dev-linter
to help find errors in operation definitions - Improve performance on input shape check
- Fix error handling for batch resolvers on parallel processor
- Add extension point
::p.error/wrap-attribute-error
- Fix batch calls with distinct parameters
- Add
pco/final-value
helper to mark a value as final
- Add optimizations to OR branches that are sub-paths of each other
- Support new
::pco/cache-key
setting for custom cache keys at resolver level
- Fix foreign mutation on async runner
- Remove viz request snapshots to allow multiple connectors on the same meshed graph
- Fix the flow of params on foreign-ast
- Fix nested dependency process
- Infer output shape in constantly resolver
- Parallel processor 🎉
- Fix cache store specs
- Add
::pcr/wrap-process-sequence-item
plugin entry point - Add
filtered-sequence-items-plugin
new built-in plugin - Batch support for dynamic resolvers
- Batch support on foreign requests
- BREAKING CHANGE: Dynamic resolvers always get rich inputs with input data and foreign ast
- Dynamic mutations also go as input parts with params
- Fix lenient mode optional inputs, it was marking errors when it shouldn't
- Support disable input destructuring validation on
pco/resolver
with the flag::pco/disable-validate-input-destructuring?
- Run
::pco/transform
before running the resolver validations - Fixed bug when combining batch + disabled cache + missing outputs doing infinite loops
- Add
p.eql/process-one
andp.a.eql/process-one
helpers
- BREAKING CHANGE: Strict mode by default, now errors surface quickly
- BREAKING CHANGE: Remove
remove-stats-plugin
, now must use the env flag:com.wsscode.pathom3.connect.runner/omit-run-stats?
instead - Optional lenient mode via setting
:com.wsscode.pathom3.error/lenient-mode? true
on env - Boundary interface now accepts
:pathom/lenient-mode?
so the client can configure it attribute-errors-plugin
is deprecated, when using lenient mode that behavior comes automatically- Fix async runner reversing lists
- Add
ctry
helper to handle exceptions in sync and async at same time - Foreign connection errors get wrapped to enrich the error context
- Add spec for
::pci/index-source-id
- Detect cycles in nested inputs to prevent stack overflow at planner
- Support foreign unions
- Entities can decide union path via
::pf.eql/union-entry-key
- Add more info to pom.xml to add repository links from clojars and cljdoc
- Add transit dependencies to fix cljdoc compilation
- Initial JAR release