Socket
Socket
Sign inDemoInstall

bookshelf-modelbase

Package Overview
Dependencies
Maintainers
2
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bookshelf-modelbase - npm Package Compare versions

Comparing version 2.10.1 to 2.10.2

17

lib/index.js

@@ -24,5 +24,5 @@ var extend = require('xtend')

this.validate = this.validate.isJoi ?
this.validate.keys(baseValidation) :
Joi.object(this.validate).keys(baseValidation)
this.validate = this.validate.isJoi
? this.validate.keys(baseValidation)
: Joi.object(this.validate).keys(baseValidation)

@@ -55,2 +55,3 @@ this.on('saving', this.validateSave)

} else {
this.set(validation.value)
return validation.value

@@ -147,5 +148,3 @@ }

var defaults = options && options.defaults
return model ?
model :
this.create(extend(defaults, data), options)
return model || this.create(extend(defaults, data), options)
})

@@ -164,5 +163,5 @@ },

.then(function (model) {
return model ?
model.save(updateData, extend({ patch: true }, options)) :
this.create(extend(selectData, updateData), options)
return model
? model.save(updateData, extend({ patch: true }, options))
: this.create(extend(selectData, updateData), options)
})

@@ -169,0 +168,0 @@ }

{
"name": "bookshelf-modelbase",
"version": "2.10.1",
"version": "2.10.2",
"description": "Extensible ModelBase for bookshelf-based model layers",

@@ -20,17 +20,17 @@ "main": "./lib",

"dependencies": {
"joi": "^5.0.2",
"lodash.difference": "^3.2.2",
"xtend": "^4.0.0"
"joi": "^9.0.4",
"lodash.difference": "^4.4.0",
"xtend": "^4.0.1"
},
"devDependencies": {
"bluebird": "^2.10.0",
"bookshelf": "^0.9.1",
"chai": "^1.10.0",
"istanbul": "^0.3.5",
"knex": "^0.7.3",
"mocha": "^2.0.1",
"sinon": "^1.12.1",
"sqlite3": "^3.0.4",
"standard": "5.0.2"
"bluebird": "^3.4.1",
"bookshelf": "^0.10.0",
"knex": "^0.11.9",
"chai": "^3.5.0",
"istanbul": "^0.4.4",
"mocha": "^3.0.0",
"sinon": "^1.17.5",
"sqlite3": "^3.1.4",
"standard": "^7.1.2"
}
}

@@ -94,3 +94,3 @@ # bookshelf-modelbase

destroy: function (options) {
return this.forge({ id: options.id })
return this.forge({ [this.prototype.idAttribute]: options.id })
.destroy(options);

@@ -113,3 +113,3 @@ }

### model.findById
#### model.findById

@@ -173,3 +173,3 @@ ```javascript

});
return this.forge({ id: options.id }).fetch(options)
return this.forge({ [this.prototype.idAttribute]: options.id }).fetch(options)
.then(function (model) {

@@ -182,1 +182,21 @@ if (model) {

```
### model.upsert
```js
/**
* Upsert - select a model based on data and update if found, insert if not found
* @param {Object} selectData Data for select
* @param {Object} updateData Data for update
* @param {Object} [options] Options for model.save
* @return {Promise(bookshelf.Model)} edited Model
*/
upsert: function (selectData, updateData, options) {
return this.findOne(selectData, extend(options, { require: false }))
.bind(this)
.then(function (model) {
return model
? model.save(updateData, extend({ patch: true }, options))
: this.create(extend(selectData, updateData), options)
})
}
```

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

var knexFile = require(__dirname + '/knexfile')
var path = require('path')
var knexFile = require(path.resolve(__dirname, 'knexfile.js'))
var knex = require('knex')(knexFile['development'])
module.exports = knex

@@ -53,6 +53,6 @@ /* global describe, before, after, beforeEach, it */

expect(Model.findOne).to.be.a('function')
expect(bookshelf.Model.findOne).to.be.undefined()
expect(bookshelf.Model.findOne).to.be.an('undefined')
})
it('should be usable as a bookshelf plugin', function () {
expect(bookshelf.Model.findOne).to.be.undefined()
expect(bookshelf.Model.findOne).to.be.an('undefined')
bookshelf.plugin(function () {

@@ -70,3 +70,4 @@ require('../lib/index').pluggable.apply(null, arguments)

validate: Joi.object().keys({
first_name: Joi.string().valid('hello', 'goodbye')
first_name: Joi.string().valid('hello', 'goodbye'),
last_name: Joi.string().default('world')
})

@@ -81,3 +82,4 @@ })

.then(function (model) {
expect(model).to.exist()
expect(model).to.not.be.an('undefined')
expect(model.get('last_name')).to.be.equal('world')
})

@@ -249,3 +251,3 @@ })

expect(model.get('first_name')).to.equal('hello')
expect(model.get('last_name')).to.be.null()
expect(model.get('last_name')).to.be.a('null')
})

@@ -288,4 +290,4 @@ })

expect(model.get('id')).to.equal(specimen.id)
expect(model.get('first_name')).to.be.undefined()
expect(model.get('last_name')).to.be.null()
expect(model.get('first_name')).to.be.an('undefined')
expect(model.get('last_name')).to.be.a('null')
})

@@ -292,0 +294,0 @@ })

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

var path = require('path')
// Update with your config settings.

@@ -7,8 +8,8 @@

connection: {
filename: __dirname + '/dev.sqlite3'
filename: path.resolve(__dirname, 'dev.sqlite3')
},
migrations: {
directory: __dirname + '/migrations'
directory: path.resolve(__dirname, 'migrations')
}
}
}

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