{"id":15664850,"url":"https://github.com/sgrishchenko/reselect-utils","last_synced_at":"2025-04-15T11:53:34.413Z","repository":{"id":34051800,"uuid":"164246280","full_name":"sgrishchenko/reselect-utils","owner":"sgrishchenko","description":"A collection of helpers and utilities for selectors","archived":false,"fork":false,"pushed_at":"2023-06-20T14:58:10.000Z","size":7862,"stargazers_count":16,"open_issues_count":28,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T19:45:09.766Z","etag":null,"topics":["re-reselect","reselect","reselect-utils","selector"],"latest_commit_sha":null,"homepage":"https://sgrishchenko.github.io/reselect-utils/docz","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgrishchenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2019-01-05T19:49:39.000Z","updated_at":"2022-07-31T10:14:26.000Z","dependencies_parsed_at":"2024-06-20T22:00:44.474Z","dependency_job_id":"6c19d7c2-8350-40e2-9beb-4ab9fee9ad38","html_url":"https://github.com/sgrishchenko/reselect-utils","commit_stats":{"total_commits":325,"total_committers":7,"mean_commits":46.42857142857143,"dds":0.2615384615384615,"last_synced_commit":"2bcb03bd1259130d410e7ef50acc44216dc423ae"},"previous_names":[],"tags_count":66,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrishchenko%2Freselect-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrishchenko%2Freselect-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrishchenko%2Freselect-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrishchenko%2Freselect-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgrishchenko","download_url":"https://codeload.github.com/sgrishchenko/reselect-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067759,"owners_count":21207395,"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":["re-reselect","reselect","reselect-utils","selector"],"created_at":"2024-10-03T13:44:21.344Z","updated_at":"2025-04-15T11:53:34.394Z","avatar_url":"https://github.com/sgrishchenko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Reselect Utils](https://sgrishchenko.github.io/reselect-utils/docz)\n\n[![build status](https://img.shields.io/travis/com/sgrishchenko/reselect-utils/master.svg?style=flat-square)](https://travis-ci.com/sgrishchenko/reselect-utils)\n[![coverage status](https://img.shields.io/coveralls/sgrishchenko/reselect-utils/master.svg?style=flat-square)](https://coveralls.io/github/sgrishchenko/reselect-utils?branch=master)\n[![npm version](https://img.shields.io/npm/v/reselect-utils.svg?style=flat-square)](https://www.npmjs.com/package/reselect-utils)\n[![github license](https://img.shields.io/github/license/sgrishchenko/reselect-utils.svg?style=flat-square)](https://github.com/sgrishchenko/reselect-utils/blob/master/LICENSE)\n\n## Install\n\nInstall from the NPM repository using yarn or npm:\n\n```shell\nyarn add reselect-utils\n```\n\n```shell\nnpm install reselect-utils\n```\n\n## Motivation\n\nSuch projects as [Reselect](https://github.com/reduxjs/reselect) and [Re-reselect](https://github.com/toomuchdesign/re-reselect) try to solve the task of memoization. But there is no standard solutions for some applied problems. This library was created to try to systematically solve the following problems:\n\n- Work with optional objects as a source for selection.\n- Binding parametric selectors to specific property values.\n- Adaptation of parametric selectors to the new parameter interface (useful for creating parametric [structured selectors](https://github.com/reduxjs/reselect#createstructuredselectorinputselectors-selectorcreator--createselector)).\n- Using selection results as parameters for a new selection.\n- Calculating the aggregate value from a collection of selector results.\n- Structuring of selection results (more proper typed version of [structured selector](https://github.com/reduxjs/reselect#createstructuredselectorinputselectors-selectorcreator--createselector) and [cached structured selector](https://github.com/toomuchdesign/re-reselect#createStructuredCachedSelector)).\n- Implementation of key selectors composition (useful for [key selector creator](https://github.com/toomuchdesign/re-reselect#keyselectorcreator) usages).\n\n## Credits\n\nReselect Utils is inspired by projects such as [Reselect](https://github.com/reduxjs/reselect), [Re-reselect](https://github.com/toomuchdesign/re-reselect) and [ts-optchain](https://github.com/rimeto/ts-optchain).\nAlso functional programming principles are used for design of this library. For example, [Chain Selector]() was inspired by Monad Pattern.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgrishchenko%2Freselect-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgrishchenko%2Freselect-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgrishchenko%2Freselect-utils/lists"}