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.0 to 0.2.2

32

index.js

@@ -12,2 +12,3 @@ var _ = require('underscore');

save: function(key, val, options) {
debug('Model.Save');
var opt;

@@ -20,6 +21,7 @@ if(!options && (typeof val === "object" || typeof val === "undefined")) {

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

@@ -39,2 +41,3 @@ debug('saved');

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

@@ -49,3 +52,3 @@ }

create :function (model, options) {
debug('Collection.create');
debug('Collection.create model');
options = Promises.wrap(options);

@@ -67,22 +70,29 @@ Backbone.Collection.prototype.create.call(this, model, options);

wrap: function(opt) {
opt = opt || {};
opt = opt || {};
debug('Wrapping %s',JSON.stringify(opt));
var deferred = whenLib.defer();
var success = opt.success;
var error = opt.error;
opt.success = function() {
if(success) success.apply(null, arguments);
debug("resolving");
deferred.resolve.apply(null, arguments);
if(success) success.apply(this, arguments);
};
opt.error = function(model, err, resp) {
debug("rejecting");
deferred.reject(err);
if(error) {
error.call(this, model, err, resp);
}
deferred.reject(err);
debug("rejecting");
};
opt.promise = deferred.promise;
opt.deferred = deferred;
if(opt.promise) {
debug('yielding promise');
deferred.promise.yield(opt.promise);
} else {
opt.promise = deferred.promise;
opt.deferred = deferred;
}
return opt;

@@ -89,0 +99,0 @@ },

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

@@ -20,3 +20,3 @@ "main": "index.js",

"mocha": "~1.13.0",
"backbone-db": "~0.1.1",
"backbone-db": "~0.4.0",
"chai": "~1.8.0"

@@ -23,0 +23,0 @@ },

@@ -11,2 +11,3 @@

var expect = require('chai').expect
var monitor = require('when/monitor/console');

@@ -59,15 +60,18 @@ var MyModel = Model.extend({

validate: function() {
return "Foo error";
return new Error("Foo error");
}
});
var ErrorCollection = MyCollection.extend({
model: ErrorModel
});
var collection = new ErrorCollection();
collection
.create({foo: 1})
.done(function() {
assert(false, 'should not allow creating model when validation fails');
assert.ok(false, 'should not allow creating model when validation fails');
}, function(err) {
assert(err);
assert.ok(err != null);
t();

@@ -74,0 +78,0 @@ });

@@ -105,3 +105,3 @@ var assert = require('assert');

done();
}));
});
});

@@ -108,0 +108,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