{"id":42541,"library":"consumerjs","title":"ConsumerJS","description":"ConsumerJS is a JavaScript library that provides an ORM-like repository/entity mapper for consuming RESTful JSON APIs, built on top of Axios. The current stable version is 3.2.1. It supports CRUD operations, Django CSRF protection, and can be extended with custom behavior. Unlike raw Axios or fetch, it offers a declarative, object-oriented approach with stateful entity objects and consumer classes that map API endpoints to JavaScript classes. It uses an active release cadence with breaking changes in major versions.","status":"active","version":"3.2.1","language":"javascript","source_language":"en","source_url":"https://github.com/maykinmedia/ConsumerJS","tags":["javascript","REST","API","orm","consumer","axios"],"install":[{"cmd":"npm install consumerjs","lang":"bash","label":"npm"},{"cmd":"yarn add consumerjs","lang":"bash","label":"yarn"},{"cmd":"pnpm add consumerjs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"HTTP client for making REST requests","package":"axios","optional":false},{"reason":"Required for older browser support (IE11) as of v2.0.0","package":"@babel/polyfill","optional":true}],"imports":[{"note":"Named export, not default.","wrong":"import CrudConsumer from 'consumerjs'","symbol":"CrudConsumer","correct":"import { CrudConsumer } from 'consumerjs'"},{"note":"Named export, not default.","wrong":"import CrudConsumerObject from 'consumerjs'","symbol":"CrudConsumerObject","correct":"import { CrudConsumerObject } from 'consumerjs'"},{"note":"ESM-only since v3; CJS is not supported.","wrong":"const Consumer = require('consumerjs').Consumer","symbol":"Consumer","correct":"import { Consumer } from 'consumerjs'"},{"note":"Named export, not default.","wrong":"import ConsumerObject from 'consumerjs'","symbol":"ConsumerObject","correct":"import { ConsumerObject } from 'consumerjs'"}],"quickstart":{"code":"import { CrudConsumer, CrudConsumerObject } from 'consumerjs';\n\nclass Post extends CrudConsumerObject {}\n\nclass PostConsumer extends CrudConsumer {\n    constructor(endpoint = 'https://api.example.com/posts/', objectClass = Post) {\n        super(endpoint, objectClass);\n    }\n}\n\nconst postConsumer = new PostConsumer();\npostConsumer.create()\n    .then(post => console.log('Created:', post))\n    .catch(err => console.error(err));\n\npostConsumer.read(1)\n    .then(post => {\n        post.title = 'updated title';\n        post.update();\n    });","lang":"typescript","description":"Shows how to define a CrudConsumer and CrudConsumerObject for a Post resource, then create and read/update instances."},"warnings":[{"fix":"Use import statements only; avoid require().","message":"Dropped CommonJS (CJS) support; package is ESM-only since v3.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Install @babel/polyfill and import it in your entry point.","message":"Requires @babel/polyfill for older browsers (IE11) as of v2.0.0.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Import from 'consumerjs' directly.","message":"Old import paths from v1 (e.g., 'consumerjs/lib/...') are removed; use main entry 'consumerjs'.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Run 'npm install axios' alongside consumerjs.","message":"Axios is a peer dependency; must be installed separately.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure API response includes either 'id' or 'pk', not conflicting values.","message":"Consumer objects resolve 'id' from either 'id' or 'pk' field by default; both fields in response may cause unexpected behavior.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Check @types/consumerjs or use typed wrappers.","message":"No TypeScript type definitions bundled; community may provide them.","severity":"deprecated","affected_versions":"<=3.2.1"}],"env_vars":null,"search_vec":"'3.2.1':30 'activ':75 'api':19,67,86 'approach':57 'axio':24,47,89 'behavior':44 'break':79 'built':20 'cadenc':77 'chang':80 'class':64,71 'consum':16,63,88 'consumerj':1,2 'crud':33 'csrf':36 'current':26 'custom':43 'declar':53 'django':35 'endpoint':68 'entiti':60 'extend':41 'fetch':49 'javascript':5,70,84 'json':18 'librari':6 'like':12 'major':82 'map':66 'mapper':14 'object':55,61 'object-ori':54 'offer':51 'oper':34 'orient':56 'orm':11,87 'orm-lik':10 'protect':37 'provid':8 'raw':46 'releas':76 'repository/entity':13 'rest':17,85 'stabl':27 'state':59 'support':32 'top':22 'unlik':45 'use':73 'version':28,83","created_at":"2026-06-05T16:55:28.463277+00:00","updated_at":"2026-06-05T16:55:28.463277+00:00","problems":[{"fix":"Run 'npm install consumerjs' and use 'import { ... } from 'consumerjs''.","cause":"Package not installed or import path incorrect.","error":"Cannot find module 'consumerjs'"},{"fix":"Use 'import { CrudConsumer } from 'consumerjs'' (named import).","cause":"Default import used instead of named import for CrudConsumer.","error":"Cannot read property 'create' of undefined"},{"fix":"Run 'npm install axios'.","cause":"Peer dependency axios not installed.","error":"Module not found: Can't resolve 'axios'"},{"fix":"Switch to import syntax or use dynamic import().","cause":"Using CommonJS require() with ESM-only package v3+.","error":"Unexpected token 'export' (or 'import')"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/maykinmedia/ConsumerJS#readme","github":"https://github.com/maykinmedia/ConsumerJS","docs":null,"changelog":null,"pypi":null,"npm":"consumerjs","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}