Skip to content

Potential mistake prevents model data modification in pre-save hooks #109

@FlyingDR

Description

@FlyingDR

Please consider this piece of model.js source:

warehouse/lib/model.js

Lines 161 to 164 in 067dd53

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions