<commit_before># redux-heat

[![Build Status](https://travis-ci.org/pirelenito/redux-heat.svg)](https://travis-ci.org/pirelenito/redux-heat)
[![npm version](https://badge.fury.io/js/redux-heat.svg)](https://badge.fury.io/js/redux-heat)

[Redux](http://redux.js.org/) side-effects as a function of state.

- No new concept to understand ([Sagas](https://github.com/yelouafi/redux-saga), [Observables](https://redux-observable.js.org/)) it is just [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise);
- It is **not** a [middleware](http://redux.js.org/docs/advanced/Middleware.html);
- Follow the same pattern as React.
<commit_msg>More bullets and an emoji 😱<commit_after># redux-heat 🔥

[![Build Status](https://travis-ci.org/pirelenito/redux-heat.svg)](https://travis-ci.org/pirelenito/redux-heat)
[![npm version](https://badge.fury.io/js/redux-heat.svg)](https://badge.fury.io/js/redux-heat)

[Redux](http://redux.js.org/) side-effects as a function of state.

- Reducers and action creators as pure functions;
- Based on [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise), so it is not new concept to understand (like [Sagas](https://github.com/yelouafi/redux-saga) and [Observables](https://redux-observable.js.org/));
- It is **not** a [middleware](http://redux.js.org/docs/advanced/Middleware.html), so setup and testing are super easy;
- Follows the same pattern as React (decide what to do based on the state and not the actions);
- It is supper tiny (really, check the source).

{'fraction_non_alphanumeric': 0.17654476670870115, 'fraction_numerical': 0.0, 'mean_word_length': 4.688172043010753, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 14, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '152883', 'n_tokens_mistral': 587, 'n_tokens_neox': 556, 'n_words': 114}