# redukers

> Reusable Redux atoms

Latest version **0.0.9** (published 2021-03-25) · ISC license · 0 weekly downloads

## Install

```sh
npm install redukers
pnpm add redukers
yarn add redukers
bun add redukers
```

## Health

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

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.9 |
| Published | 2021-03-25 |
| First published | 2020-09-07 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 46.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Redradix |
| Maintainers | redradix, monkeyandres |
| Keywords | redux, boilerplate, reducers, selectors, actions |

## Links

- npm: https://www.npmjs.com/package/redukers
- Repository: https://github.com/redradix/redukers
- Homepage: https://github.com/redradix/redukers#readme
- Issues: https://github.com/redradix/redukers/issues
- npm.io page: https://npm.io/package/redukers

## Recent versions

- 0.0.9 (latest) — 2021-03-25
- 0.0.8 — 2021-03-12
- 0.0.7 — 2021-02-05
- 0.0.6 — 2021-02-05
- 0.0.5 — 2021-02-05
- 0.0.4 — 2021-01-08
- 0.0.3 — 2020-09-07

## README

# Redukers

![Downloads](https://badgen.net/npm/dt/redukers)
![Version](https://badgen.net/npm/v/redukers)
![License](https://badgen.net/npm/license/redukers)
![Dependencies](https://badgen.net/david/dep/redradix/redukers)
![Size](https://badgen.net/bundlephobia/min/redukers)

Reusable Redux atoms. Provides composable data structures in form of a reducer
and its accompanying selectors.

## Concepts

### Reduker

A [reducer](https://redux.js.org/basics/reducers) creator and a set of
[selectors](https://daveceddia.com/redux-selectors/) to access its internal
state. The created reducer reacts to actions matching the configured
`Pattern`s (see below).

Redukers are very minimal, and intended to handle a small slice of state (a
particular data structure). The application state is therefore grown by
composing there redukers (or other custom reducers) manually or via
[`combineReducers`](https://redux.js.org/api/combinereducers).

### Patterns

Redukers can be defined to react to specific actions via `Pattern`s. A `Pattern`
can be a `string` (i.e. an action type to react to), an `Array<string>` (i.e. an
array of action types to react to) or a predicate `(action: Action) => boolean`
that returns `true` if it should react to the action.

```ts
type Pattern =
  | string
  | Array<string>
  | ((action: Action) => boolean)
```

### Flux Standard Actions

https://github.com/redux-utilities/flux-standard-action

## Modules

See each module for in-depth documentation:

- [`value`](./lib/value/): Holds a single value.

  > **WARNING:** This module cannot hold `undefined` values (see
  > https://redux.js.org/recipes/structuring-reducers/initializing-state#summary).
  > Use `null`, `false` or other appropriate value instead.

- [entities](./lib/entities/): Holds a collection of keyed entities. Keys are
  unique values used to identify and access an entity (usually an `id`).

- [request](./lib/request/): Holds the state of a single request (usually a
  network `fetch`).

- [requestById](./lib/requestById/): Holds the state of a collection of request
  (usually a network `fetch`).

- [utils](./lib/utils/): Various convenience utilities to reduce Redux
  boilerplate or create your own redukers.

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