Potential mistake prevents model data modification in pre-save hooks
FlyingDR opened this issue · comments
Please consider this piece of model.js
source:
Lines 161 to 164 in 067dd53
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.
I have searched the source code of Hexo, there are several pre-save or pre-remove hooks, but none of them modify the data
. I'd rather believe that such behavior is intentional
To make it less confusing, maybe we could Object.freeze
the data
before exec Hooks