New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

backbone-promises

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

backbone-promises - npm Package Compare versions

Comparing version 0.2.2 to 0.2.3

35

index.js

@@ -1,5 +0,5 @@

var _ = require('underscore');
var Backbone = require('backbone');
var debug = require('debug')('backbone-promises');
var whenLib = require('when');
var when = whenLib = require('when');
var _ = require('lodash');

@@ -13,3 +13,3 @@

debug('Model.Save');
var opt;
var opt, self = this;
if(!options && (typeof val === "object" || typeof val === "undefined")) {

@@ -21,9 +21,7 @@ debug('wrapping val');

}
var validated = Backbone.Model.prototype.save.call(this, key, val, opt);
var validated = Backbone.Model.prototype.save.call(this, key, val, options);
if(validated === false) {
var err = this.validationError || new Error('Validation failed');
debug('validation failed with error %s',err);
return opt.deferred.reject(err);
debug('Model validation failed');
opt.deferred.reject(this.validationError||new Error('validation failed'));
}
debug('saved');
return opt.promise;

@@ -41,3 +39,2 @@ },

Backbone.Model.prototype.destroy.call(this, options);
return options.promise;

@@ -70,13 +67,11 @@ }

opt = opt || {};
debug('Wrapping %s',JSON.stringify(opt));
var deferred = whenLib.defer();
var deferred = opt.deferred || when.defer();
var success = opt.success;
var error = opt.error;
opt.success = function() {
debug("resolving");
deferred.resolve.apply(null, arguments);
deferred.resolve.apply(deferred, arguments);
if(success) success.apply(this, arguments);
};
}
opt.error = function(model, err, resp) {

@@ -88,10 +83,6 @@ debug("rejecting");

}
};
if(opt.promise) {
debug('yielding promise');
deferred.promise.yield(opt.promise);
} else {
}
if(!opt.deferred) {
opt.deferred = deferred;
opt.promise = deferred.promise;
opt.deferred = deferred;
}

@@ -98,0 +89,0 @@ return opt;

{
"name": "backbone-promises",
"version": "0.2.2",
"version": "0.2.3",
"description": "Adds Promises/A+ support to backbone model and collection",

@@ -25,6 +25,6 @@ "main": "index.js",

"backbone": "~1.1.0",
"underscore": "~1.4.4",
"debug": "~0.7.2",
"when": "~2.8.0"
"when": "~2.8.0",
"lodash": "~2.4.1"
}
}

@@ -24,2 +24,15 @@ var assert = require('assert');

describe('#Model', function() {
it('should have chainable methods as promises', function(next) {
var m = new MyModel();
m.save({"test":123}).then(function() {
return m.save({"test_b":"a"}).then(function(mo) {
var model = new MyModel({id:mo.get(mo.idAttribute)});
return model.fetch();
})
}).done(function(m) {
assert.equal(m.get("test_b"), "a");
next();
}, next)
});
it('should have deferred .save', function(t) {

@@ -29,5 +42,3 @@ var m = new MyModel({id:1});

t();
}, function() {
assert(false);
});
}, t);
});

@@ -39,11 +50,8 @@

var m2 = new MyModel({id:2});
m2.fetch().then(function(model) {
return m2.fetch().then(function(model) {
assert(model.get("test") == "a");
t();
}, function() {
assert(false);
});
}, function() {
assert(false);
});
}).done(function() {
t();
}, t);
});

@@ -85,5 +93,3 @@

return m.destroy().then(function() {
return m.fetch().then(function() {
assert.ok(false);
},
return m.fetch().then(t,
function(err) {

@@ -104,6 +110,6 @@ assert(err instanceof(Error), 'It should return an error when not found');

};
m.save({id:123, variable:"test"}).done(function() {
assert.fail();
}, function(err) {
m.save({id:123, variable:"test"}).then(done, function(err) {
assert.equal(err.message, 'failed validating');
return when.resolve();
}).done(done, function() {
done();

@@ -120,3 +126,9 @@ });

return m2.fetch().then(function() {
return m3.fetch();
return when.promise(function(resolve, reject) {
m3.fetch().done(function() {
setTimeout(function() {
resolve();
}, 1)
}, reject);
})
});

@@ -123,0 +135,0 @@ })

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc