# state-middleware-manager

> State accumulating/reducing middleware manager

Latest version **3.0.0** (published 2024-11-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install state-middleware-manager
pnpm add state-middleware-manager
yarn add state-middleware-manager
bun add state-middleware-manager
```

## Health

**Score 50/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: stale.

## Facts

| | |
|---|---|
| Version | 3.0.0 |
| Published | 2024-11-08 |
| First published | 2018-06-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 1 |
| Unpacked size | 62.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | MOL Ads |
| Maintainers | johngeorgewright |

## Links

- npm: https://www.npmjs.com/package/state-middleware-manager
- Repository: https://github.com/johngeorgewright/state-middleware-manager
- Homepage: https://github.com/johngeorgewright/state-middleware-manager#readme
- Issues: https://github.com/johngeorgewright/state-middleware-manager/issues
- npm.io page: https://npm.io/package/state-middleware-manager

## Dependencies (1)

- [tslib](https://npm.io/package/tslib.md) ^2.8.0

## Recent versions

- 3.0.0 (latest) — 2024-11-08
- 2.0.1 — 2024-10-18
- 2.0.0 — 2024-10-18
- 1.0.0 — 2019-02-09
- 0.0.2 — 2018-06-25
- 0.0.1 — 2018-06-25

## README

# state-middleware-manager

> State accumulating and reducing middleware manager

[![NPM Version](https://img.shields.io/npm/v/state-middleware-manager.svg?style=flat-square)](https://www.npmjs.com/package/state-middleware-manager)
[![License](https://img.shields.io/npm/l/state-middleware-manager.svg?style=flat-square)](https://github.com/johngeorgewright/state-middleware-manager/blob/master/LICENSE)

## Installation

```
npm install state-middleware-manager
```

## Example

```javascript
import { compose, Middleware } from 'state-middleware-manager'

const middleware1: Middleware<{}, { foo: string }> = (state, next) => {
  expect(state).toEqual({})
  return next({ foo: 'bar' })
}

const middleware2: Middleware<{ foo: string }, { mung: string }> = (state, next) => {
  expect(state).toEqual({ foo: 'bar ' })
  return next({ mung: 'face' })
}

compose({}, middleware1, middleware2).then((state) => {
  expect(state).toEqual({
    mung: 'face',
  })
})
```

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