# create-state

> Create state atoms that are updated via reducers

Latest version **0.0.2** (published 2018-10-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install create-state
pnpm add create-state
yarn add create-state
bun add create-state
```

## 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.2 |
| Published | 2018-10-28 |
| First published | 2018-10-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 7.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | Philipp Spiess |
| Maintainers | philipp-spiess |

## Links

- npm: https://www.npmjs.com/package/create-state
- Repository: https://github.com/philipp-spiess/create-state
- Homepage: https://github.com/philipp-spiess/create-state#readme
- Issues: https://github.com/philipp-spiess/create-state/issues
- npm.io page: https://npm.io/package/create-state

## Recent versions

- 0.0.2 (latest) — 2018-10-28
- 0.0.1 — 2018-10-28

## README

# 🍱 create-state

Tiny ([<200B minified + gzipped](https://bundlephobia.com/result?p=create-state@0.0.1)) state atoms that are updated via reducers.

```js
import createState from "create-state"

const initialState = { count: 0 };
function reducer(state, action) {
  switch (action.type) {
    case "INCREMENT":
      return { count: state.count + 1 };
    case "DECREMENT":
      return { count: state.count - 1 };
  }
}
const store = createState(reducer, initialState);


console.log(store.getState().count); // => 0

store.dispatch({ type: "INCREMENT" })

console.log(store.getState().count); // => 1
```

`create-state` is a lightweight implementation of a [Redux](https://redux.js.org/introduction) store without advanced concepts like middleware.

## Installation

```bash
npm install --save create-state
```

## Contributing

Every help on this project is greatly appreciated. To get you started, here's a quick guide on how to make good and clean pull-requests:

1.  Create a fork of this [repository](https://github.com/philipp-spiess/create-store), so you can work on your own environment.
2.  Install development dependencies locally:

    ```bash
    git clone git@github.com:<your-github-name>/create-store.git
    cd create-store
    yarn install
    ```

3.  Make changes using your favorite editor.
4.  Commit your changes ([here](https://chris.beams.io/posts/git-commit/) is a wonderful guide on how to make amazing git commits).
5.  After a few seconds, a button to create a pull request should be visible inside the [Pull requests](https://github.com/philipp-spiess/create-store/pulls) section.

## Future Improvements

- [ ] Add Flow and TypeScript types. This is actually very important for this library: Actions must be typed as an enum such that the type system can find out if we use the wrong type.
- [ ] Improve test harness.

## License

[MIT](https://github.com/philipp-spiess/create-store/blob/master/README.md)

[Redux]: https://redux.js.org/introduction
[react-redux]: https://github.com/reduxjs/react-redux

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