1.0.0 • Published 4 years ago

snowstorm v1.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

snowstorm

npm version Node.js Build

Simple Javascript ORM

:snowflake: 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();

:snowflake: 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])
PropertiesArguments
snowstorm.Properties.stringattr
snowstorm.Properties.numberattr
snowstorm.Properties.booleanattr
snowstorm.Properties.arrayattr
snowstorm.Properties.objectattr
snowstorm.Properties.dateattr, format
snowstorm.Properties.modelattr, 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
});

:snowflake: Running tests

npm install

npm test

1.0.0

4 years ago

0.1.4

5 years ago

0.1.3

7 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago

0.0.0

9 years ago