TypeORM: update item and return it

sandrooco picture sandrooco · Dec 13, 2017 · Viewed 24.5k times · Source

As far as I know, it's a best practice to return an item after it has been updated. TypeORM's updateById returns void, not the updated item though.

My question: Is it possible to update and return the modified item in a single line?

What I tried so far:

await this.taskRepository.updateById(id, { state, dueDate });
return this.taskRepository.findOne({ id });

What I'm looking for:

return this.taskRepository.updateById(id, { state, dueDate }); // returns updated task

Answer

sandrooco picture sandrooco · Dec 13, 2017

I just found out that I can do this with the .save method:

return this.taskRepository.save({
    id: task.id,
    state,
    dueDate
});

According to the docs (section save), partial updates are supported as well:

Also supports partial updating since all undefined properties are skipped.