Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/julienetie/soucouyant
Relational State Management
https://github.com/julienetie/soucouyant
Last synced: 16 days ago
JSON representation
Relational State Management
- Host: GitHub
- URL: https://github.com/julienetie/soucouyant
- Owner: julienetie
- License: mit
- Created: 2024-02-01T05:20:12.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-02T14:46:11.000Z (11 months ago)
- Last Synced: 2024-02-03T06:29:25.237Z (11 months ago)
- Language: JavaScript
- Size: 85.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Soucouyant - (work in progress)
## Relational State Management
Soucouyant is a powerful JavaScript state management library. It comes in two flavours **_Kiss_** and **_Enchilada_**. Common state management requirements should prefer the Kiss variant. The full variant can be ideal for persistent state management .e.g _(Undo/ Redo history)_ and trajectories e.g. _(Advanced animations)_.
Although Soucouyant is a full featured state management system, please remember there are no brownie points for over-engineering your application. **Please respect simplicity as a first principle**.
#### Install
##### npm`npm i soucouyant`
##### git
Set the vendor flag to the name of your third party
```
git clone [email protected]:julienetie/soucouyant.git \
&& npm run install --prefix soucouyant --vendor='./vendor'
```
This command puts the soucouyant builds into your specified `--vendor` folder and deletes the ./sououyant folder after.##### deno
```js
export { o, pending, republish, alias, head, chain, mutex } from 'soucouyant.js'
```#### Soucouyant Kiss
The Kiss build _(keep it simple stupid)_ features publish, subscribe, inversion and finite state abilities. It's a small but powerful state management API for applications that do not need to persist state-change. `soucouyant.kiss.min.js` is under 1kB.
```html```
#### Soucouyant Enchilada
Soucouyant Enchilada features the complete API which includes persistent state, persistent storage, finite-state trajectories, and the ability to archive state (e.g. send to the server). `soucouyant.min.js` is under 3kB.
```html```
```html```
#### Import
```js
// Kiss Native
import {o, pending, republish, mutex } from './soucouyant.kiss.js'
/* Kiss Bundler
import {o, pending, republish, mutex } from 'soucouyant/kiss' */
```
```js
// Enchilada Native
import { o, pending, republish, alias, head, chain, mutex } from './soucouyant.js'
/* Enchilada Bundler
import { o, pending, republish, alias, head, chain, mutex } from 'soucouyant' */
```
```js
// Enchilada CJS
const { o, pending, republish, alias, head, chain, mutex } = require('soucouyant.umd.js')
```
### [Get Started](https://github.com/julienetie/soucouyant/blob/main/GET_STARTED.md)
## [Soucouyant API Documentation](https://github.com/julienetie/soucouyant/blob/main/DOCUMENTATION.md)_Arwork by [Alexandra Guardia](https://www.deviantart.com/alexndhearted)_
MIT © Julien Etienne 2024