{"id":14520397,"url":"https://github.com/satanTime/ngrx-entity-relationship","last_synced_at":"2025-08-31T22:30:53.721Z","repository":{"id":37047926,"uuid":"249141966","full_name":"satanTime/ngrx-entity-relationship","owner":"satanTime","description":"ORM selectors for redux, @ngrx/store, @ngrx/entity and @ngrx/data. Ease of relationships with entities.","archived":false,"fork":false,"pushed_at":"2024-12-18T14:19:55.000Z","size":72675,"stargazers_count":43,"open_issues_count":196,"forks_count":8,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-18T15:28:23.179Z","etag":null,"topics":["angular","entity","foreign-keys","graphql","mutation","ngrx","ngrx-data","ngrx-entity","normalization","orm","query","react","reactjs","redux","related","relations","relationships","subscription"],"latest_commit_sha":null,"homepage":"https://ngrx-entity-relationship.sudo.eu","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satanTime.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"satanTime"}},"created_at":"2020-03-22T08:26:48.000Z","updated_at":"2024-08-07T23:31:24.000Z","dependencies_parsed_at":"2024-04-02T09:29:36.883Z","dependency_job_id":"8062ef69-61bc-4559-904e-544158e8a8b6","html_url":"https://github.com/satanTime/ngrx-entity-relationship","commit_stats":{"total_commits":1393,"total_committers":5,"mean_commits":278.6,"dds":0.4580043072505384,"last_synced_commit":"2dd8eb67fe09fceba7d05d11ca5982174d177156"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satanTime%2Fngrx-entity-relationship","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satanTime%2Fngrx-entity-relationship/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satanTime%2Fngrx-entity-relationship/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satanTime%2Fngrx-entity-relationship/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satanTime","download_url":"https://codeload.github.com/satanTime/ngrx-entity-relationship/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231631666,"owners_count":18403227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","entity","foreign-keys","graphql","mutation","ngrx","ngrx-data","ngrx-entity","normalization","orm","query","react","reactjs","redux","related","relations","relationships","subscription"],"created_at":"2024-09-04T04:01:42.296Z","updated_at":"2024-12-28T13:30:44.107Z","avatar_url":"https://github.com/satanTime.png","language":"TypeScript","funding_links":["https://github.com/sponsors/satanTime"],"categories":["Table of contents","Recently Updated"],"sub_categories":["Third Party Components","[Sep 03, 2024](/content/2024/09/03/README.md)"],"readme":"[![chat on gitter](https://img.shields.io/gitter/room/satanTime/ngrx-entity-relationship)](https://gitter.im/ngrx-entity-relationship/community)\n[![npm version](https://img.shields.io/npm/v/ngrx-entity-relationship)](https://www.npmjs.com/package/ng-mocks)\n[![build status](https://circleci.com/gh/satanTime/ngrx-entity-relationship.svg?style=shield)](https://app.circleci.com/pipelines/github/satanTime/ngrx-entity-relationship)\n[![coverage status](https://img.shields.io/coveralls/github/satanTime/ngrx-entity-relationship/master)](https://coveralls.io/github/satanTime/ngrx-entity-relationship?branch=master)\n[![language grade](https://img.shields.io/lgtm/grade/javascript/g/satanTime/ngrx-entity-relationship)](https://lgtm.com/projects/g/satanTime/ngrx-entity-relationship/context:javascript)\n\n# ORM selectors for redux, @ngrx/entity and @ngrx/data and ease of relationships with entities\n\n`ngrx-entity-relationship` helps to:\n\n- select relational data from **Redux** or **NGRX** stores\n- maintain store with normalized entities\n- quickly build queries for **GraphQL**\n\n**Important links**\n\n- [Documentation with examples](https://ngrx-entity-relationship.sudo.eu)\n- [GitHub repo](https://github.com/satanTime/ngrx-entity-relationship)\n- [NPM package](https://www.npmjs.com/package/ngrx-entity-relationship)\n\n* Live [Redux example on StackBlitz](https://stackblitz.com/edit/ngrx-entity-relationship-react?file=src/MyComponent.tsx)\n* Live [Redux example on CodeSandbox](https://codesandbox.io/s/github/satanTime/ngrx-entity-relationship-react?file=/src/MyComponent.tsx)\n* Live [NGRX example on StackBlitz](https://stackblitz.com/github/satanTime/ngrx-entity-relationship-angular?file=src/app/app.component.ts)\n* Live [NGRX example on CodeSandbox](https://codesandbox.io/s/github/satanTime/ngrx-entity-relationship-angular?file=/src/app/app.component.ts)\n\n- [chat on gitter](https://gitter.im/ngrx-entity-relationship/community)\n- [ask a question on stackoverflow for Redux solution](https://stackoverflow.com/questions/ask?tags=ngrx-entity-relationship%20ngrx%20angular)\n- [ask a question on stackoverflow for NGRX solution](https://stackoverflow.com/questions/ask?tags=ngrx-entity-relationship%20redux%20reactjs)\n- [report an issue on GitHub](https://github.com/satanTime/ngrx-entity-relationship/issues/new)\n\n## Very short introduction\n\nThe best way is to read [documentation](https://ngrx-entity-relationship.sudo.eu),\nbut there is an example below for a quick introduction.\n\nIf we want to select a user with its company and with the address of the company,\nin order that the final object would look like that:\n\n```ts\nconst user = {\n  id: '1',\n  firstName: 'John',\n  lastName: 'Smith',\n  companyId: '1',\n  company: {\n    id: '1',\n    name: 'Magic',\n    adminId: '2',\n    addressId: '1',\n    address: {\n      id: '1',\n      street: 'Main st.',\n      city: 'Town',\n      country: 'Land',\n    },\n  },\n};\n```\n\nWe need to use a selector built by `ngrx-entity-relationship` for **Redux** or **NGRX** like that:\n\n```ts\nconst selectUser = rootUser(\n  relUserCompany(\n    relCompanyAddress(),\n  ),\n);\n```\n\nProfit.\n\n## What you could do next\n\n- [watch updates on github](https://github.com/satanTime/ngrx-entity-relationship)\n- [give a star](https://github.com/satanTime/ngrx-entity-relationship)\n- [share on twitter](https://twitter.com/intent/tweet?text=Check+ngrx-entity-relationship+package\u0026url=https%3A%2F%2Fgithub.com%2FsatanTime%2Fngrx-entity-relationship)\n\nThank you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FsatanTime%2Fngrx-entity-relationship","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FsatanTime%2Fngrx-entity-relationship","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FsatanTime%2Fngrx-entity-relationship/lists"}