🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

activerest

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

activerest

Provides ActiveRecord-like REST capabilities.

latest
Source
npmnpm
Version
0.2.5
Version published
Maintainers
1
Created
Source

activerest

Usage

var models = activerest(urlOrConfig, definitions);

The first parameter could be just a base URL, or a configuration object detailed below.

Configuration

var API = require('activerest');

var models = new api({
	url: urlString, 		// Default base URL to use

	headers: null,			// Could be an object containing header: value fields OR a function which returns an object
							// The function will be called each time a REST request is made, good for complex
							// authentication methods. It will be called with the path and any post data.

	getMethod: 'GET',		// Override the method used when getting an object
	newMethod: 'PUT',		// Override the method used when creating an object
	findMethod: 'GET',		// Override the method used when finding an object
	updateMethod: 'PUT',	// Override the method used when updating an object

	transform: null,		// Would be a function of form function(req); is passed in the entire request to transform
							// as necessary for complex requests. You can resolve using the callback parameter passed
							// in, or you can resolve by returning a promise.

	statics: {				// A key-value object which defines static objects that should be added to the model
		count: function() { // An example of a function that will be added, such that Model.count calls this function
		}
	}

}, definitions);

Model Definition

The model definitions could be an array, like this:

var models = activerest(config, ['picture', 'note']);

This will give you models.picture and models.note, which will use all the default values. Requests will be:

models.picture.find((err, pictures) => {}); 	// GET /pictures
models.picture.get(1).then(picture => {}); 	// GET /pictures/1
var newpic = new models.picture();

newpic.save();							// POST /pictures

As in above examples, functions can accept a callback (which will receive (err, result)) but will also return a promise with the results.

Model names are automatically pluralized into paths, using the Pluralize module.

picture:		/pictures
puppy:			/puppies
person:			/people

However, things are customizable.

var models = activerest(config, [{
	name: 'picture',					// Name of the returned model
	path: '/picture',					// Customize the path that the model will use
	idProperty: 'picture_id',			// Customize the property used for the ID when updating.
	getMethod: 'GET',					// Override the method used when getting an object
	newMethod: 'PUT',					// Override the method used when creating an object
	findMethod: 'QUERY',				// Override the method used when finding an object
	updateMethod: 'PATCH',				// Override the method used when updating an object
	headers: null,						// Custom function or object to set the headers, overrides the default from config
	transform: null						// As above, this is the last function to be passed the request for transformation
}, {
	name: 'person',	
	url: 'http://domain.com/people'		// Specify a completely different URL just for this
}]);

FAQs

Package last updated on 28 Mar 2019

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