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

sworm

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sworm - npm Package Compare versions

Comparing version 2.3.0 to 2.4.0

106

index.js

@@ -34,17 +34,10 @@ var crypto = require("crypto");

var outputId;
if (typeof obj._meta.id == 'string') {
outputId = obj._meta.db.driver.outputId(obj._meta.id);
} else {
outputId = '';
}
if (!fields.length) {
if (obj._meta.db.driver.insertEmpty) {
return obj._meta.db.driver.insertEmpty(obj._meta.table, obj._meta.id) + ' ' + outputId;
return obj._meta.db.driver.insertEmpty(obj._meta.table, obj._meta.id);
} else {
return 'insert into ' + obj._meta.table + ' default values ' + outputId;
return 'insert into ' + obj._meta.table + ' default values';
}
} else {
return 'insert into ' + obj._meta.table + ' (' + fields + ') values (' + values + ') ' + outputId;
return 'insert into ' + obj._meta.table + ' (' + fields + ') values (' + values + ')';
}

@@ -64,9 +57,10 @@ }

return obj._meta.db.query(statementString, params, {
statement: true
}).then(function (r) {
insert: !obj._meta.compoundKey,
statement: obj._meta.compoundKey,
id: obj._meta.id
}).then(function (insertedId) {
obj.setSaved();
if (!obj._meta.compoundKey) {
var insertedId = obj._meta.db.driver.insertedId(r, obj._meta.id);
obj[obj._meta.id] = insertedId;
obj[obj._meta.id] = insertedId;
}

@@ -120,7 +114,7 @@

function saveManyToOne(obj, field) {
function saveManyToOne(obj, field, options) {
var value = foreignField(obj, field);
if (value && !(value instanceof Array)) {
return value.save().then(function () {
return value.save(options).then(function () {
var foreignId =

@@ -140,9 +134,9 @@ obj._meta.foreignKeyFor ?

function saveManyToOnes(obj) {
function saveManyToOnes(obj, options) {
return Promise.all(foreignFieldsForObject(obj).map(function (field) {
return saveManyToOne(obj, field);
return saveManyToOne(obj, field, options);
}));
}
function saveOneToMany(obj, field) {
function saveOneToMany(obj, field, options) {
var items = foreignField(obj, field);

@@ -152,3 +146,3 @@

return Promise.all(items.map(function (item) {
return item.save();
return item.save(options);
}));

@@ -160,5 +154,5 @@ } else {

function saveOneToManys(obj) {
function saveOneToManys(obj, options) {
return Promise.all(foreignFieldsForObject(obj).map(function (field) {
return saveOneToMany(obj, field);
return saveOneToMany(obj, field, options);
}));

@@ -183,6 +177,15 @@ }

var waitForOneToManys;
var oneToManyPromises;
if (typeof options == 'object' && options.hasOwnProperty('oneToManyPromises')) {
waitForOneToManys = false;
oneToManyPromises = options.oneToManyPromises;
} else {
waitForOneToManys = true;
oneToManyPromises = [];
}
if (!self._saving) {
self.setSaving(true);
return saveManyToOnes(this).then(function () {
self.setSaving(saveManyToOnes(this, {oneToManyPromises: oneToManyPromises}).then(function () {
if (self.changed() || force) {

@@ -192,15 +195,30 @@ var writePromise = self.saved() ? update(self) : insert(self);

return writePromise.then(function () {
return saveOneToManys(self);
return {
oneToManys: saveOneToManys(self, {oneToManyPromises: oneToManyPromises})
};
});
} else {
return saveOneToManys(self);
return {
oneToManys: saveOneToManys(self, {oneToManyPromises: oneToManyPromises})
};
}
}).then(function () {
}).then(function (value) {
self.setSaving(false);
return value;
}, function (error) {
self.setSaving(false);
throw error;
}));
}
oneToManyPromises.push(self._saving.then(function (r) {
return r.oneToManys;
}));
if (waitForOneToManys) {
return self._saving.then(function () {
return Promise.all(oneToManyPromises);
});
} else {
return Promise.resolve();
return self._saving;
}

@@ -231,3 +249,3 @@ },

Object.defineProperty(this, "_saving", {
value: true,
value: saving,
configurable: true

@@ -316,3 +334,3 @@ });

};
return model;

@@ -325,4 +343,8 @@ },

function runQuery() {
return self.driver.query(query, params, options).then(function (results) {
self.logResults(query, params, results, options && options.statement);
var command = options && options.insert
? self.driver.insert(query, params, options)
: self.driver.query(query, params, options)
return command.then(function (results) {
self.logResults(query, params, results, options);
return results;

@@ -346,5 +368,5 @@ }, function (e) {

logResults: function(query, params, results, statement) {
logResults: function(query, params, results, options) {
if (typeof this.log == 'function') {
return this.log(query, params, results, statement);
return this.log(query, params, results, options);
} else {

@@ -356,3 +378,6 @@ if (params) {

}
if (!statement && results) {
if (options && options.insert) {
return debugResults('id = ' + results);
} else if (!(options && options.statement) && results) {
return debugResults(results);

@@ -394,9 +419,8 @@ }

this.connection = this.driver.connect(_config).then(function () {
function finishRunningBeginSession() {
self.runningBeginSession = false;
}
if (_config.setupSession) {
self.runningBeginSession = true;
function finishRunningBeginSession() {
self.runningBeginSession = false;
}
return _config.setupSession(self).then(finishRunningBeginSession, finishRunningBeginSession);

@@ -403,0 +427,0 @@ }

@@ -33,14 +33,14 @@ var promisify = require('./promisify');

close: function() {
return this.connection.close();
},
insert: function(query, params, options) {
var id = options.id;
outputId: function(id) {
return "; select scope_identity() as " + id;
return this.query(query + "; select scope_identity() as " + id, params).then(function (rows) {
return rows[0][id];
});
},
insertedId: function(rows, id) {
return rows[0][id];
close: function() {
return this.connection.close();
}
};
};

@@ -30,2 +30,8 @@ var promisify = require('./promisify');

insert: function(query, params) {
return this.query(query + "; select last_insert_id() as id", params).then(function (rows) {
return rows[1][0].id;
});
},
connect: function(config) {

@@ -46,14 +52,6 @@ var self = this;

outputId: function() {
return "; select last_insert_id() as id";
},
insertEmpty: function(table) {
return 'insert into ' + table + ' () values ()';
},
insertedId: function(rows) {
return rows[1][0].id;
}
};
};

@@ -14,3 +14,3 @@ var optionalRequire = require('./optionalRequire');

if (options && options.statement) {
if (options && (options.statement || options.insert)) {
return results;

@@ -34,2 +34,10 @@ } else {

insert: function(query, params, options) {
var id = options.id;
return this.query(query + " returning " + id + " into :returning_into_id", params, options).then(function (rows) {
return rows.outBinds.returning_into_id[0];
});
},
connect: function (config) {

@@ -62,6 +70,2 @@ var self = this;

outputId: function (id) {
return " returning " + id + " into :returning_into_id";
},
insertEmpty: function(table, id) {

@@ -75,6 +79,2 @@ return 'insert into ' + table + ' (' + id + ') values (default)';

};
},
insertedId: function (rows) {
return rows.outBinds.returning_into_id[0];
}

@@ -81,0 +81,0 @@ };

{
"name": "sworm",
"version": "2.3.0",
"version": "2.4.0",
"description": "a lightweight write-only ORM for MSSQL, MySQL, PostgreSQL, Oracle, Sqlite 3",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -46,2 +46,10 @@ var promisify = require('./promisify');

insert: function(query, params, options) {
var id = options.id;
return this.query(query + ' returning ' + id, params).then(function (rows) {
return rows[0][id];
});
},
connect: function(config) {

@@ -61,2 +69,3 @@ var self = this;

},
close: function() {

@@ -66,12 +75,4 @@ if (this.done) {

}
},
outputId: function(id) {
return "returning " + id;
},
insertedId: function(rows, id) {
return rows[0][id];
}
};
};

@@ -19,3 +19,3 @@ var promisify = require('./promisify');

if (options && options.statement) {
if (options && (options.statement || options.insert)) {
return new Promise(function (fulfil, reject) {

@@ -44,2 +44,8 @@ debug(query, sqliteParams);

insert: function(query, params, options) {
return this.query(query, params, options).then(function (rows) {
return rows.lastId;
});
},
connect: function(config) {

@@ -62,12 +68,4 @@ var self = this;

});
},
outputId: function() {
return '';
},
insertedId: function(result) {
return result.lastId;
}
};
};

@@ -1,2 +0,1 @@

var debug = require("debug")("sworm");
var chai = require("chai");

@@ -133,6 +132,11 @@ var expect = chai.expect;

db.log = function(sql, params, results) {
debug(sql, params, results);
db.log = function(sql) {
var originalLog = this.log;
this.log = undefined;
var match = /^(insert|update|delete|select)/.exec(sql);
return statements.push(match[1]);
statements.push(match[1]);
this.logResults.apply(this, arguments);
this.log = originalLog;
};

@@ -610,2 +614,23 @@

it("can save a shared foreign object", function() {
var essert = address({
address: "15, Rue d'Essert"
});
var bob = person({
name: "bob",
address: essert
});
var jane = person({
name: "jane",
address: essert
});
return Promise.all([bob.save(), jane.save()]).then(function() {
expect(bob.address_id).to.equal(essert.id);
expect(jane.address_id).to.equal(essert.id);
});
});
it("can save a many to one relationship with function", function() {

@@ -789,2 +814,3 @@ var bobsAddress;

var jane;
var rueDEssert = address({

@@ -791,0 +817,0 @@ address: "15, Rue d'Essert",

Sorry, the diff of this file is not supported yet

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