Skip to content

maddsua/es-state

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

es-state

Vue-like ref() but not bound to any specific framework. Persistent in local/session storage or cookie

Usage example

//  shared_module.js
import { PersistentStateRef } from '@maddsua/es-state';
export const editorSession = new PersistentStateRef(null, 'editor_session_data');
//  module_A.js
import { editorSession } from './shared_module.js';
editorSession.watch((value) => console.log('Session data was updated:', value));
//  module_B.js
import { editorSession } from './shared_module.js';
//  pretend that it's fetching some data
setTimeout(() => {
  editorSession.value = {
    username: 'name',
    rights: 'all',
    rizz: 'none'
  };
}, 1000);

Note: if you're using PersistentStateRef in a framework that utilizes island architecture or some other form of delayed hydration, you need to call hydrate() method after you are sure that client is ready to provide access to storage or cookies. Otherwise, the state will fall back to it's default value

About

Reactive state refs for vanilla JS/TS

Resources

License

Stars

Watchers

Forks

Packages