Please consider this piece of model.js source:
|
return execHooks(schema, 'pre', 'save', data).then(data => { |
|
// Insert data |
|
this.data[id] = result; |
|
this.length++; |
It can be seen, that pre save hook is received data variable and receives (potentially modified) data in then() (at the line 161), but ignores this information and inserts previously defined result variable instead at the line 163.
It effectively results into lack of ability to perform any data modifications in pre save hooks.
Same approach is used for updating and replacement of the model data.
Since logic of this piece of code remains untouched from the very beginning - I'm not sure if it is intentional (but rather confusing) decision or a bug that hides for a long time.
Please consider this piece of
model.jssource:warehouse/lib/model.js
Lines 161 to 164 in 067dd53
It can be seen, that
pre savehook is receiveddatavariable and receives (potentially modified)datainthen()(at the line 161), but ignores this information and inserts previously definedresultvariable instead at the line 163.It effectively results into lack of ability to perform any
datamodifications inpre savehooks.Same approach is used for updating and replacement of the model data.
Since logic of this piece of code remains untouched from the very beginning - I'm not sure if it is intentional (but rather confusing) decision or a bug that hides for a long time.