
Security News
Open Source CAI Framework Handles Pen Testing Tasks up to 3,600× Faster Than Humans
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
consumerjs
Advanced tools
Consumerjs simplifies REST with an ORM like approach. Built on top of Axios.
Consumerjs simplifies REST with an ORM like approach. Built on top of Axios.
Consumerjs is an ORM-like repository/entity mapper that aims to make using RESTful JSON API's simple and DRY. It supports basic CRUD operations on remote resources and can easiy be extended with custom behaviour.
ConsumerJS out of the box supports (Django) CSRF protection.
Install with npm.
$ npm i consumerjs --save
As of 2.0.0: @babel/polyfill needs to be installed in your project in order to support older browsers like Internet Explorer 11.
See doc for full API documentation.
Example:
data/post.js
import { CrudConsumer, CrudConsumerObject } from 'consumerjs';
class Post extends CrudConsumerObject {}
class PostConsumer extends CrudConsumer {
constructor(endpoint='http://example.com/api/v1/posts/', objectClass=Post) {
super(endpoint, objectClass);
}
;}
export default PostConsumer;
examples/my-app.js
import PostConsumer from '../data/post.js';
let postConsumer = new PostConsumer();
postConsumer.create()
.then(someFunction) // When promise resolves, call someFunction with new Post object
.catch(errorFunction); // When promise rejects, call errorFunction
//
// When a consumer receives a JSON array as result, an array of consumer objects is returned.
//
postConsumer.read()
.then(someFunction) // When promise resolves, call someFunction with all resolved Post objects
.catch(errorFunction); // When promise rejects, call errorFunction
let id = 1;
postConsumer.read(id)
.then(someFunction) // When promise resolves, call someFunction with resolved Post (with id 1)
.catch(errorFunction); // When promise rejects, call errorFunction
examples/my-app2.js
// Internally, id is resolved using either "pk" or "id" field
post.title = 'some new title';
post.update() // Saves changed fields to API using partial PATCH request
post.save() // Save all fields to API using full PUT request
post.delete() // Deletes this post using DELETE request
TODO: Document the usage of various
List
types and pagination. For now please see the tests for examples.
ConsumerJS defines a few built-in classes, all of those should preferably be extended by a custom class implementing domain specific behaviour (if any):
Consumers (Consumer, CrudConsumer):
"Consumers" are classes that define how to perform operations on the remote API. It converts the results to "Consumer object" which contains a statefull representation of the API result.
A consumer:
Consumers should be preferably be extended, configured and optionally, methods can be overwritten to change default behaviour. Configuration should preferably be done in de constructor method:
/**
* Configures Consumer instance
* @param {string} endpoint Base endpoint for this API
* @param {AbstractConsumerObject} objectClass Class to cast results to
* @param {Object} [options] Additional configuration
*/
constructor(endpoint='http://example.com/api/v1/posts/', objectClass=Post, options=null) {
super(endpoint, objectClass);
}
create([object])
, creates objecs.read([id])
, fetches all objects or a single object by id.Consumer objects (ConsumerObject, CrudConsumerObject):
"Consumer objects" are classes that define how to perform object specific operations on the remote API. Consumer objects should be extended, configured and optionally methods can be overwritten to change default behaviour.
A consumer object:
A reference to the consumer is kept using the __consumer__ property, (custom) methods can use this to communicate with the API.
customMethod(data) {
return this.__consumer.__.post('/path/', data); // CrudConsumerObject instances can use this.getPath() as path.
}
update()
, persists changes made to object.save()
, fully saves object.delete()
, deletes this object.FAQs
Consumerjs simplifies REST with an ORM like approach. Built on top of Axios.
The npm package consumerjs receives a total of 60 weekly downloads. As such, consumerjs popularity was classified as not popular.
We found that consumerjs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
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.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.
Security News
CVEForecast.org uses machine learning to project a record-breaking surge in vulnerability disclosures in 2025.