Socket
Socket
Sign inDemoInstall

resourceful

Package Overview
Dependencies
74
Maintainers
2
Versions
20
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

resourceful

an isomorphic Resource engine for JavaScript


Version published
Maintainers
2
Weekly downloads
46
increased by228.57%

Weekly downloads

Readme

Source

Synopsis

  • Isomorphic Resource engine for JavaScript
  • Resources are business logic wrapped in prototypical models with schema and validation
  • Resources support several data-providers
    • Memory
    • File-System
    • CouchDB
    • MongoDB
    • REST
    • socket.io

Status

Build Status

Features

Installation

$ [sudo] npm install resourceful

Usage

Simple case

var resourceful = require('resourceful');

var Creature = resourceful.define('creature', function () {
  //
  // Specify a storage engine
  //
  this.use('couchdb');

  //
  // Specify some properties with validation
  //
  this.string('diet');
  this.bool('vertebrate');
  this.array('belly');

  //
  // Specify timestamp properties
  //
  this.timestamps();
});

//
// Now that the `Creature` prototype is defined
// we can add custom logic to be available on all instances
//
Creature.prototype.feed = function (food) {
  this.belly.push(food);
};

Engines

Documentation

See the wiki for more documention.

API

Resource Constructor Methods

These methods are available on all user-defined resource constructors, as well as on the default resourceful.Resource constructor.

  • Resource.get(id, [callback]): Fetch a resource by id.
  • Resource.update(id, properties, [callback]): Update a resource with properties.
  • Resource.destroy(id, [callback]): Destroy a resource by id.
  • Resource.all([callback]): Fetches all resources of this type.
  • Resource.find(properties, [callback]): Find all resources of this type which satisfy properties conditions.
  • Resource.save(inst, [callback]): Saves the specified resource instance inst by overwriting all properties.
  • Resource.create(properties, [callback]): Creates a new instance of the Resource with the specified properties.
  • Resource.new(properties): Instantiates a new instance of the Resource with the properties.

Resource Instance Methods

  • Resource.prototype.save([callback])
  • Resource.prototype.update(properties, [callback])
  • Resource.prototype.destroy([callback])
  • Resource.prototype.reload([callback])

Relationship Constructor Methods

These methods are available on all user-defined resource constructors which are in a relationship

  • Parent.children(id, [callback]): Fetches all the children for the specified id.
  • Parent.createChild(id, properties, [callback]): Create a child for id with the specified properties.
  • Child.byParent(id, [callback]): Fetches all the children for the parent given by id.

Relationship Instance Methods

  • Parent.prototype.children([callback])
  • Parent.prototype.createChild(properties, [callback])
  • Child.prototype.parent([callback]): Fetches the parent of the given child instance.

Relational Resources

Resourceful supports a simple Resource.parent API, supports one-one, one-many, and many-many relationships.

Documentation

Tests

All tests are written with vows and should be run with npm:

  $ npm test

License

Copyright 2012 Nodejitsu, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Keywords

FAQs

Last updated on 12 Jan 2015

Did you know?

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc