@segment/create-selector

A simple wrapper over reselect to allow creating selectors with a cache size more than 1. See here for more information on this.

Usage no npm install needed!

<script type="module">
  import segmentCreateSelector from 'https://cdn.skypack.dev/@segment/create-selector';
</script>

README

Circle CI

create-selector

A simple wrapper over reselect to allow creating selectors with a cache size more than 1. See here for more information on this.

Example

import createSelector from '@segment/create-selector'

const getVisibilityFilter = (state) => state.visibilityFilter
const getTodos = (state) => state.todos

export const getVisibleTodos = createSelector(
  [ getVisibilityFilter, getTodos ],
  (visibilityFilter, todos) => {
    switch (visibilityFilter) {
      case 'SHOW_ALL':
        return todos
      case 'SHOW_COMPLETED':
        return todos.filter(t => t.completed)
      case 'SHOW_ACTIVE':
        return todos.filter(t => !t.completed)
    }
  }
)

Developing

$ goto create-selector
$ make test

Releasing / Publishing

CircleCI will handle publishing to npm. To cut a new release, just do:

$ git changelog --tag <version>
$ vim package.json # enter <version>
$ git release <version>

Where <version> follows the semver spec.