https://github.com/esp/esp-js
Evented State Processor (ESP) adds specific processing workflow around changes to a model's state.
https://github.com/esp/esp-js
esp-js react typescript
Last synced: 5 months ago
JSON representation
Evented State Processor (ESP) adds specific processing workflow around changes to a model's state.
- Host: GitHub
- URL: https://github.com/esp/esp-js
- Owner: esp
- License: apache-2.0
- Created: 2015-05-30T11:48:55.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2025-02-12T08:07:24.000Z (over 1 year ago)
- Last Synced: 2025-09-24T06:54:10.456Z (9 months ago)
- Topics: esp-js, react, typescript
- Language: TypeScript
- Homepage:
- Size: 10.7 MB
- Stars: 52
- Watchers: 12
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/esp/esp-js)

[](https://lernajs.io/)
# Evented State Processor (ESP)
ESP gives you the ability to manage changes to a model in a deterministic event driven manner.
It does this by adding specific processing workflow around changes to a model's state.
It was born out of the need to manage complex UI and/or server state.
At its core is a `Router` which sits between event publishers and the model.
Those wanting to change the model publish events to the `Router`.
The model observes the events and applies the changes.
The model is then dispatched to model observers so new state can be applied.
It's lightweight, easy to apply and puts the model at the forefront of your design.
ESP 2.0 adds a host of other additional libraries to help you build composite single page application with React.
It allows you to use either OO, and/or immutable pattens (Redux like) for modeling independent and decoupled screens within your composite application.
Features include:
* The core event router - esp-js [](https://www.npmjs.com/package/esp-js)
* Dependency injection container - esp-js-di [](https://www.npmjs.com/package/esp-js-di)
* Module loading system and composite application toolbox - esp-js-ui [](https://www.npmjs.com/package/esp-js-ui)
* React support - esp-js-react [](https://www.npmjs.com/package/esp-js-react)
* Immutable state models - esp-js-polimer [](https://www.npmjs.com/package/esp-js-polimer)
It's built on typescript and type definitions are included in the npm packages.
For full documentation please see [https://esp.github.io/](https://esp.github.io/).