snowstorm

1.0.0 • Public • Published

snowstorm

npm version Node.js Build

Simple Javascript ORM

❄️ Getting Started

Installation

npm install snowstorm

Example

Create a model and define the properties of the model

var snowstorm = require('snowstorm');
 
// Define the model and its properties
var Task = snowstorm.create('Task', {
    title: snowstorm.Properties.string,
    completed: snowstorm.Properties.boolean,
    createdAt: snowstorm.Properties.date('created_at')
});

Add methods to the prototype layer

Task.prototype.isCompleted = function () {
    return this.completed;
};

Create an instance of a task

// Data from server
var responseData = {
    title: 'Task out the trash',
    completed: false,
    created_at: '2015-08-20T10:00:00.000Z'
};
var task = new Task(responseData);

Access the properties/methods of the task or convert to JSON to send back to the server

console.log(task.title);          // Task out the trash
console.log(task.createdAt);      // Thu Aug 20 2015 04:00:00 GMT-0600 (MDT)
console.log(task.isCompleted());  // false
 
// Send back to server
var requestData = task.toJSON();

❄️ API

Create a model class

snowstorm.create(name, properties);

Define a property to be used on the model

snowstorm.Properties.string
// or
snowstorm.Properties.string(attr, [arguments])
Properties Arguments
snowstorm.Properties.string attr
snowstorm.Properties.number attr
snowstorm.Properties.boolean attr
snowstorm.Properties.array attr
snowstorm.Properties.object attr
snowstorm.Properties.date attr, format
snowstorm.Properties.model attr, modelClass

Create a custom property

var Moment = require('moment'); // https://github.com/moment/moment/
 
function moment (attr) {
    return {
        attr: attr,
        construct: function (d) {
            if (typeof d === 'undefined') {
                return null;
            }
            return Moment(d);
        },
        destruct: function (d) {
            if (!d) {
                return null;
            }
            return d.toISOString();
        }
    }
};
 
// Usage
var Todo = snowstorm.create('Task', {
    dueAt: moment
});

❄️ Running tests

npm install

npm test

Readme

Keywords

Package Sidebar

Install

npm i snowstorm

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

4.72 kB

Total Files

4

Last publish

Collaborators

  • tsanders