Added
- Compose complex input arguments through nested arg resolvers #899
- Add
\Nuwave\Lighthouse\Support\Contracts\ArgResolver
directive interface #899 - Allow existing mutation directives
@create
,@update
,@upsert
and@delete
to function
as nested arg resolvers #899 - Validate at schema build time that the
apply
argument@rules
is an array #1092 - Add support in
@whereConditions
for IN, IS NULL and BETWEEN operators #1099 - Add ability to define pivot data on nested mutations within
sync
,syncWithoutDetach
andconnect
#1110 - Allow restricting the columns for
@orderBy
to a given whitelist and generate
anenum
definition for it #1118 - Allow passing variables in
->graphQL()
test helper #1127 - Add missing schema descriptions to some inputs, types, and enums #1131
- Add
@guard
directive to handle authentication #1135 - Add
@whereHasConditions
directive to filter query results based on the existence of a relationship #1140
Changed
- Remove
\Nuwave\Lighthouse\Execution\MutationExecutor
in favour of modular nested arg resolvers #899 - Register the operator enum for
@whereConditions
programmatically and allow
overwriting it through a service provider #1099 - Always automatically set the correct argument type when using
@whereConditions
or@orderBy
directives #1118 - Implement the
name()
function generically in the BaseDirective class #1098 - Renamed the
@whereConstraints
directive to@whereConditions
#1140
Fixed
- Enable chained rule provider directives (
ProvidesRules
) to merge the rules before validating #1082 - Apply nested
OR
conditions in@whereConditions
correctly #1099 - Allow passing
null
or simply noid
when using@upsert
#1114
Deprecated
- The argument
field
within theOrderByClause
used for@orderBy
will be renamed tocolumn
in v5 #1118 - Deprecated the
@middleware
directive, as it violates the boundary between HTTP and GraphQL
request handling. Use@guard
or other field middleware directives instead #1135
Removed
- Remove broken
NOT
conditional when using@whereConditions
#1125