https://github.com/fakundo/redux-entities
https://github.com/fakundo/redux-entities
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/fakundo/redux-entities
- Owner: fakundo
- Created: 2017-11-06T00:27:48.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T04:14:04.000Z (over 3 years ago)
- Last Synced: 2025-02-27T17:59:42.384Z (over 1 year ago)
- Language: JavaScript
- Size: 2.09 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
### Entities manager
Reducer, actions & selectors created to simplify work with entities.
### Installation
```
yarn add @fakundo/redux-entities
```
### Creating reducer
```js
import { createReducer } from 'redux-entities'
const collectionNames = ['subjects', 'users']
export default createReducer(collectionNames)
```
### Actions (action creators)
- replaceEntities(collectionName, entities)
- mergeEntities(collectionName, entities)
- deleteEntities(collectionName, ...entityKeys)
- replaceCollections(collections)
- mergeCollections(collections)
- purgeCollections(...collectionNames)
- purgeAllCollections()
### Selectors
- getEntities(state, collectionName, ...entityKeys)
- getEntity(state, collectionName, entityKey)
- getCollection(state, collectionName)
### With custom reducer
```js
import { createReducer } from 'redux-entities'
const createCustomReducer = initialState => (state, action) => {
switch (action.type) {
case LOG_OUT:
return initialState
detault:
return state
}
}
export default createReducer(['subjects', 'users'], createCustomReducer)
```