diff --git a/lib/sqlite3.js b/lib/sqlite3.js index c8e3e8c6c..a731f729e 100644 --- a/lib/sqlite3.js +++ b/lib/sqlite3.js @@ -146,7 +146,7 @@ Statement.prototype.map = function() { var isVerbose = false; -var supportedEvents = [ 'trace', 'profile', 'insert', 'update', 'delete' ]; +var supportedEvents = [ 'trace', 'profile', 'change']; Database.prototype.addListener = Database.prototype.on = function(type) { var val = EventEmitter.prototype.addListener.apply(this, arguments); diff --git a/package.json b/package.json index c2742e3d5..d1e422c95 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "sqlite3", + "name": "@131/sqlite3", "description": "Asynchronous, non-blocking SQLite3 bindings", - "version": "4.0.8", + "version": "4.0.9", "homepage": "http://github.com/mapbox/node-sqlite3", "author": { "name": "MapBox", diff --git a/src/database.cc b/src/database.cc index ace5fa0b0..2ddb0c21c 100644 --- a/src/database.cc +++ b/src/database.cc @@ -335,6 +335,13 @@ NAN_METHOD(Database::Configure) { Baton* baton = new Baton(db, handle); db->Schedule(RegisterProfileCallback, baton); } + else if ( + Nan::Equals(info[0], Nan::New("change").ToLocalChecked()).FromJust() + ) { + Local handle; + Baton* baton = new Baton(db, handle); + db->Schedule(RegisterUpdateCallback, baton); + } else if (Nan::Equals(info[0], Nan::New("busyTimeout").ToLocalChecked()).FromJust()) { if (!info[1]->IsInt32()) { return Nan::ThrowTypeError("Value must be an integer"); @@ -499,12 +506,13 @@ void Database::UpdateCallback(Database *db, UpdateInfo* info) { Nan::HandleScope scope; Local argv[] = { + Nan::New("change").ToLocalChecked(), Nan::New(sqlite_authorizer_string(info->type)).ToLocalChecked(), Nan::New(info->database.c_str()).ToLocalChecked(), Nan::New(info->table.c_str()).ToLocalChecked(), Nan::New(info->rowid), }; - EMIT_EVENT(db->handle(), 4, argv); + EMIT_EVENT(db->handle(), 5, argv); delete info; }