{"repo":"Taujor/Eis","free":true,"listed":false,"github":"https://github.com/Taujor/Eis","clone":"git clone https://github.com/Taujor/Eis.git","description":"A tiny, framework-agnostic state store for the web. Simple, reactive, and immutable. Works seamlessly with vanilla JS, React, Vue, Svelte, and Nodejs.","language":"JavaScript","stars":14,"topics":["2kb","immutable","javascript","nextjs","react","reactive","reactjs","state","state-management","svelte"],"license":"MIT","category":"saas-starters-boilerplates","readme_excerpt":"EIS ❄️ (Extremely Immutable State) A tiny, framework-agnostic state store for the web. Simple, reactive, and immutable. Works with everything. --- Features Core Features - Immutable State : State is always frozen to prevent accidental mutations. - Deep Freeze : Recursively freezes all nested objects for deep immutability. - Deep Clone : Uses structuredClone if available, falls back to JSON.parse(JSON.stringify(...)) to ensure state updates are truly immutable. - Simple API : Only three methods: get , set , and subscribe . - Functional Updates : Supports both direct value updates and updater functions. - Subscription Model : Listen to state changes and react accordingly. - Instant Notification : Optionally call listeners immediately with the current state. - Unsubscribe Support : Easily remove listeners when no longer needed. - Clear Error Handling : Provides actionable error messages for debugging. - No External Dependencies : Self-contained, minimalistic, and easy to integrate. - Developer Mode : Optional developer mode toggle for maximum performance in production scenarios. API Methods Method Description ---------------- ------------------------------------------------------------------------------------------------- get() Returns the current state. set((state) = {}) or set(value) Replaces the state. Accepts either a new state or an updater function that returns new state. subscribe((state = {})), false) Subscribes a listener function to state changes. Returns an unsubscrib","default_branch":null,"files":null,"tree":[],"storefront":"/r/Taujor","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Taujor/Eis/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}