# erschema-selectors

> A normalizer for erschema

Latest version **1.0.4** (published 2017-11-15) · ISC license · 0 weekly downloads

## Install

```sh
npm install erschema-selectors
pnpm add erschema-selectors
yarn add erschema-selectors
bun add erschema-selectors
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.4 |
| Published | 2017-11-15 |
| First published | 2017-03-12 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Leigh Silverstein |
| Maintainers | l2silver |
| Keywords | erschema, normalize, selectors, erschema-redux-immutable |

## Links

- npm: https://www.npmjs.com/package/erschema-selectors
- Repository: https://github.com/l2silver/erschema-selectors
- Homepage: https://github.com/l2silver/erschema-selectors#readme
- Issues: https://github.com/l2silver/erschema-selectors/issues
- npm.io page: https://npm.io/package/erschema-selectors

## Dependencies (3)

- [lodash](https://npm.io/package/lodash.md) ^4.17.4
- [reselect](https://npm.io/package/reselect.md) ^2.5.4
- [immutable](https://npm.io/package/immutable.md) ^3.8.2

## Recent versions

- 1.0.4 (latest) — 2017-11-15
- 1.0.3 — 2017-10-04
- 1.0.2 — 2017-10-04
- 1.0.1 — 2017-03-12
- 1.0.0 — 2017-03-12

## README

# erschema-selectors

A class of selectors for use with the erschema-redux-immutable library

## Usage
```
import Selector from 'erschema-selectors'
import erschema from 'erschema-redux-immutable'
import { createStore, combineReducers } from 'redux';
import { Record } from 'immutable'
import schema from './schema'
import reducers from './reducer'

const store = createStore(combineReducer({
  ...reducers,
  erschema({
    schema,
  })
}))

class UserModel extends Record({
  name: '',
  id: '',
}){}

const defaultUserModel = new UserModel()

const userSelectors(
  ((state)=>state.erschema) | 'erschema',
  'users',
  defaultUserModel
)

const mapStateToProps = (state, props)=>{
  return {
    user: userSelectors.find((props)=>props.id)(state, props)
  }
}
```

## Properties

```
type $idSelector = (state: Object, props: Object)=>any
const defaultIdSelector = (s, p)=>p.id

type $idsSelector = (state: Object, props: Object)=>any[]

```
### findEntityData
```
userSelectors.findEntityData()
===>
returns all of the models for users entity type in an immutable Map
```


### find
```
userSelectors.find(idSelector?: $idSelector = defaultIdSelector)
===>
returns the user model if it exists, or the default user model
```

### get
```
userSelectors.find(idSelectors: $idsSelector)
===>
returns the ids iterator type mapped with the user models if they exists, or the default user model
```

### get
```
userSelectors.find(idSelectors: $idsSelector)
===>
returns the ids iterator type mapped with the user models if they exists, or the default user model
```

### findManyRelationshipData
```
userSelectors.findManyRelationshipData(relationshipName)
===>
returns the entire immutable Map of relationship values

ie. userSelectors.findManyRelationshipData('friends')
===>
Immutable.Map({
  [id]: Immutable.OrderedSet([...ids])
})
```

### findMonoRelationshipData
```
userSelectors.findMonoRelationshipData(relationshipName)
===>
returns the entire immutable Map of relationship values

ie. userSelectors.findManyRelationshipData('friends')
===>
Immutable.Map({
  [id]: id
})
```

### getRawRelatedIds
```
userSelectors.getRawRelatedIds(relationshipName, idSelector?: $$idSelector = defaultIdSelector)
===>
returns the relationship for a specific id as an Immutable OrderedSet if it exists, or a empty OrderedSet if no relationship for that id exists
```
### getRelatedIds
```
Same as getRawRelatedIds except returns an Immutable List instead of an OrderedSet, which is easier to work with
```

### findRelatedId
```
userSelectors.findRelatedId(relationshipName, idSelector?: $$idSelector = defaultIdSelector)
===>
returns the related id for a specific ids relationship  if it exists, or a 0 if it does not exist
```

---
_Source: https://npm.io/package/erschema-selectors · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
