You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

bookshelf-committed-plugin

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bookshelf-committed-plugin

A plugin for Bookshelf ORM to fire the `committed` event when a model is `saved` inside a transaction and after the transaction has successfully committed

2.0.1
latest
Source
npmnpm
Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

bookshelf-committed-plugin

npm install bookshelf-committed-plugin

A plugin for Bookshelf ORM to fire the committed event on saved and transaction completed successfully.

saved: insert or update

Use case

The bookshelf created, saved, updated events actually fire before the transaction completes. So if you're using a transaction, and you try to load the model or related models in the on handler, the models wont be loaded.

Example and definition

initialize(){
  this.on('committed', (model, attrs, options, previousAttributes) => {
    // do something
  });
}
model: Bookshelf.Model,
attrs: Object, // plain object of attributes that will be updated
options: Object, // options passed to save, including method which is automatically added if not originally in save options
previousAttributes: Object, // plain object of attributes prior to this save, (not neccessarily the same as prior to the transaction)
Bookshelf.plugin(require('bookshelf-committed-plugin'));

FAQ

  • If I do a save on a model twice in the same transaction, will committed event be fired twice? Yes

  • Why did you include previousAttributes when bookshelf supports this via model.previousAttributes() and other bookshelf event handlers don't have this parameter? Bookshelf's previousAttributes() is unreliable because its conceivable that the value gets overwritten by another save, before we retrieve the value in the on handler of the other save. Additionally with the case of multiple saves on the same model in the same transaction, the first previousAttributes will be overwritten by the time the committed events get called. Additionally it makes more sense to me to call the event handler with this value as an additional argument rather than storing it in the model itself, as its only relevant immediately post save.

FAQs

Package last updated on 23 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.