Socket
Socket
Sign inDemoInstall

firenze-adapter-sqlite

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firenze-adapter-sqlite

SQLite adapter for firenze.js ORM


Version published
Weekly downloads
5
Maintainers
2
Weekly downloads
 
Created
Source

firenze-adapter-sqlite

Build Status Coverage Status npm Join the chat at https://gitter.im/fahad19/firenze

SQLite adapter for firenze.js

Install it with npm: npm install --save firenze-adapter-sqlite

Contents

Install

$ npm install --save firenze-adapter-sqlite

Usage

You aren't expected to deal with the Adapter directly. Just pass the adapter to Database config when you create an instance.

var f = require('firenze');
var Database = f.Database;
var SqliteAdapter = require('firenze-adapter-sqlite');

var db = new Database({
  adapter: SqliteAdapter,
  filename: 'my_database.sqlite'
});

Schema

When defining a Model's schema, you need to pass option for each column's type.

Here are the supported types from this adapter:

  • increments
  • integer
  • bigInteger
  • text
  • string
  • float
  • decimal
  • boolean
  • date
  • dateTime
  • uuid

Example:

var Post = db.createModelClass({
  schema: {
    id: {
      type: 'increments'
    }
  }
});

Finders

Examples below assumes you have an instance of Collection already:

var posts = new Posts();

first

Gives you the first matched result:

posts.find('first', {
  conditions: {
    id: 1
  }
}).then(function (post) {
  // post is now an instance of Post model
  var title = post.get('title');
});

all

Gives you all matched results:

posts.find('all', {
  conditions: {
    published: true
  }
}).then(function (models) {
  models.forEach(function (model) {
    var title = model.get('title');
  });
});

list

Gives you a list of key/value paired object of matched results:

posts.find('list', {
  conditions: {},
  fields: [
    'id',
    'title'
  ]
}).then(function (list) {
  // list is now:
  //
  // {
  //   1: 'Hello World',
  //   2: 'About'
  // }
});

count

Gives you the total count of matched results:

posts.find('count').then(function (count) {
  // count is an integer here
});

Complex conditions

equals

posts.find('all', {
  conditions: {
    id: 1
  }
});

in list

posts.find('all', {
  conditions: {
    id: [
      1,
      2,
      3
    ]
  }
});

comparisons

posts.find('all', {
  conditions: {
    'Post.rating >': 3
  }
})

Example comparisons that you can try:

  • greater than ModelAlias.field >
  • greater than or equel to ModelAlias.field >=
  • less than ModelAlias.field <
  • less than or equal to ModelAlias.field <=
  • not equal to ModelAlias.field !=

AND

posts.find('all', {
  conditions: {
    AND: {
      'Post.published': 1
    }
  }
});

OR

posts.find('all', {
  conditions: {
    OR: {
      'Post.published': 1
    }
  }
});

NOT

posts.find('all', {
  conditions: {
    NOT: {
      'Post.published': 1
    }
  }
});

Order

For ordering results:

posts.find('all', {
  order: {
    'Post.title': 'asc'
  }
});

Group

For grouping result set:

posts.find('all', {
  group: [
    'column_name'
  ]
});

Fields

Select only a number of fields:

posts.find('all', {
  fields: [
    'id',
    'title'
  ]
});

Limit (pagination)

Limit number of results:

posts.find('all', {
  limit: 10
});

If you want to go through paginated results:

posts.find('all', {
  limit: 10,
  page: 2
})

Keywords

FAQs

Package last updated on 22 Jun 2015

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