feathers-vuex
feathers-vuex copied to clipboard
ReplaceItems option doesn't works when patching/updating value with null
Steps to reproduce
If you make an update with deleted properties or a patch with properties with null values, you'll get back the new items from the api without those properties.
When adding the replaceItems
for the items to be completely replaced, this doesn't works because a merge is still done at the end, the items are not replaced.
Expected behavior
The replaceItems
option should really replace the item.
Actual behavior
With replaceItems
set to true
and with an existing item, a new instance is created with the item received from the api.
https://github.com/feathersjs-ecosystem/feathers-vuex/blob/0d76efdcf7c7ca35c8dda1020a5dc4ca0dc6a59d/src/service-module/service-module.mutations.ts#L88-L94
Then in the base model constructor, the mergeInstance
mutation is called.
https://github.com/feathersjs-ecosystem/feathers-vuex/blob/0d76efdcf7c7ca35c8dda1020a5dc4ca0dc6a59d/src/service-module/make-base-model.ts#L129-L133
Which then call the mergeWithAccessor
function
https://github.com/feathersjs-ecosystem/feathers-vuex/blob/0d76efdcf7c7ca35c8dda1020a5dc4ca0dc6a59d/src/service-module/service-module.mutations.ts#L124-L131
Possible solution
The mergeInstance
mutation in the base model should be called only if replaceItems
is not set to true
.
System configuration
Module versions: 3.16.0
NodeJS version: 14.17.0
Hi, is this fix in a release?
Hi, not yet @corepay Any idea when you can take a look @marshallswain ?