{"id":43751,"library":"redux-orm-angular","title":"redux-orm-angular","description":"Helpers for integrating Angular applications using angular-redux with redux-orm. Version 2.0.0 is the current stable release. It provides an observable-based query mechanism (selectData) to subscribe to redux-ORM queries directly in Angular components via the @select decorator. Alternative to manually wiring up redux-ORM sessions; requires redux-orm ^0.9.0 as peer dependency. Ships TypeScript types. Low maintenance cadence.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/didomi/redux-orm-angular","tags":["javascript","angular","redux","orm","typescript"],"install":[{"cmd":"npm install redux-orm-angular","lang":"bash","label":"npm"},{"cmd":"yarn add redux-orm-angular","lang":"bash","label":"yarn"},{"cmd":"pnpm add redux-orm-angular","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency; provides ORM core","package":"redux-orm","optional":false}],"imports":[{"note":"CommonJS require is supported but TypeScript/ESM import is recommended. This is the primary exported function.","wrong":"const selectData = require('redux-orm-angular').selectData; // CJS require works but ESM preferred","symbol":"selectData","correct":"import { selectData } from 'redux-orm-angular'"}],"quickstart":{"code":"// Install dependencies\n// npm install --save redux-orm-angular redux-orm @angular-redux/store\n\nimport { ORM } from 'redux-orm';\nimport { Post } from './models/post';\n\nconst orm = new ORM();\norm.register(Post);\n\n// Required configuration\nORM.angularConfig = {\n  instance: orm,\n  stateKey: 'data'\n};\n\n// In Angular component\nimport { Component } from '@angular/core';\nimport { selectData } from 'redux-orm-angular';\nimport { Observable } from 'rxjs';\nimport { Post } from './models/post'; // assumes model is registered\n\n@Component({\n  selector: 'app-root',\n  template: `<div *ngFor=\"let post of posts$ | async\">{{ post.title }}</div>`\n})\nexport class AppComponent {\n  @select(selectData(Post).all())\n  posts$!: Observable<typeof Post[]>;\n}\n","lang":"typescript","description":"Configures ORM.angularConfig and uses selectData in an Angular component to subscribe to all Post entities."},"warnings":[{"fix":"Set ORM.angularConfig as shown in the README configuration section.","message":"ORM.angularConfig must be set before any component using selectData is instantiated. Forgetting this causes a runtime error.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure redux-orm version is ^0.9.0 in package.json.","message":"Requires redux-orm ^0.9.0. Using a different version may cause breaking changes.","severity":"breaking","affected_versions":"2.0.0"},{"fix":"Use modern Angular state management like @ngrx/store with redux-orm directly.","message":"Package relies on angular-redux/store which is no longer maintained (Angular 9+). Consider migrating to @ngrx/store or similar.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Use only with angular-redux/store patterns.","message":"selectData returns a function that must be used with @select or the select() function from angular-redux. Not usable with other state management libraries.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Ensure stateKey equals the key in combineReducers used for the redux-orm reducer.","message":"The stateKey in ORM.angularConfig must match the key where the redux-orm reducer is mounted in the Redux store. Mismatch leads to empty data.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'0.9.0':62 '2.0.0':19 'altern':49 'angular':4,8,12,43,73 'angular-redux':11 'applic':9 'base':30 'cadenc':71 'compon':44 'current':22 'decor':48 'depend':65 'direct':41 'helper':5 'integr':7 'javascript':72 'low':69 'mainten':70 'manual':51 'mechan':32 'observ':29 'observable-bas':28 'orm':3,17,39,56,61,75 'peer':64 'provid':26 'queri':31,40 'redux':2,13,16,38,55,60,74 'redux-orm':15,37,54,59 'redux-orm-angular':1 'releas':24 'requir':58 'select':47 'selectdata':33 'session':57 'ship':66 'stabl':23 'subscrib':35 'type':68 'typescript':67,76 'use':10 'version':18 'via':45 'wire':52","created_at":"2026-06-05T17:01:18.049736+00:00","updated_at":"2026-06-05T17:01:18.049736+00:00","problems":[{"fix":"Define ORM.angularConfig with instance and stateKey as per the configuration section.","cause":"ORM.angularConfig was not defined before using selectData.","error":"Error: ORM.angularConfig is not set"},{"fix":"Set ORM.angularConfig = { instance: orm, stateKey: 'your_key' }.","cause":"ORM.angularConfig is undefined or missing stateKey.","error":"TypeError: Cannot read property 'stateKey' of undefined"},{"fix":"Register the model on the orm instance: orm.register(ModelName).","cause":"Model not registered in the ORM instance used in ORM.angularConfig.instance.","error":"Error: Session not found for model <ModelName>"}],"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/didomi/redux-orm-angular#readme","github":"https://github.com/didomi/redux-orm-angular","docs":null,"changelog":null,"pypi":null,"npm":"redux-orm-angular","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"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}}