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

Extensible ModelBase for bookshelf-based model layers


Version published
Weekly downloads
1.8K
decreased by-1.92%
Maintainers
2
Weekly downloads
 
Created
Source

ModelBase Build Status Code Climate Test Coverage npm version

##Why Bookshelf.js is awesome. However, we found ourselves extending bookshelf.Model for the same reasons over and over - parsing and formatting (to and from DB) niceties, adding timestamps, and validating data on save, for example. Since these are problems you'll likely have to solve for most use cases of Bookshelf, it made sense to provide a convenient set of core model features.

Please note

  • bookshelf-modelbase will not force you to use it for all your models. If you want to use it for some and not others, nothing bad will happen.

  • bookshelf-modelbase requires you to pass in an initialized instance of bookshelf, meaning that you can configure bookshelf however you please. Outside of overriding bookshelf.Model, there is nothing you can do to your bookshelf instance that will break bookshelf-modelbase.

Features

  • Adds timestamps (createdAt and updatedAt)

  • Validate own attributes on save using Joi. You can pass in a validation object as a class attribute when you extend bookshelf-modelbase - see below for usage.

  • Writes attributes to the db as snake_case, but exposes them in code as camelCase.

##Usage

var db        = require(knex)(require('./knexfile'));
var bookshelf = require('bookshelf')(db);
// Pass an initialized bookshelf instance
var ModelBase = require('bookshelf-modelbase')(bookshelf);

var User = ModelBase.extend({
}, {
  validation: <Joi validation object, defaults to Joi.any()>
})

FAQs

Package last updated on 15 Dec 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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