1.1.0 β€’ Published 1 year ago

@safwanganz/orbitsync v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

OrbitSync 🌌

Synchronize state across tabs, clients, and contexts with ease.

npm license downloads

OrbitSync is a lightweight, powerful tool to keep your app’s state in perfect harmonyβ€”whether across browser tabs, server-client connections, or different parts of your codebase. Launch your state into orbit and let it sync seamlessly.


✨ Features

  • Cross-Tab Sync: Real-time state updates across multiple browser tabs.
  • Persistence: Store state in localStorage or customize your own adapter.
  • Event-Driven: Subscribe to changes with a simple, intuitive API.
  • Framework Agnostic: Works with plain JS, React, Vue, Node.js, and more.
  • Lightweight: Minimal dependencies, maximum flexibility.

πŸš€ Installation

npm install @safwanganz/orbitsync

πŸ› οΈ Usage

const { OrbitSync } = require('@safwanganz/orbitsync');

const orbit = new OrbitSync({
  storage: 'localStorage',
  channel: 'my-app-state',
});

orbit.set({ user: 'Alice', count: 0 });

orbit.subscribe((state) => {
  console.log('State in orbit:', state);
});

orbit.update('count', (prev) => prev + 1);

Open multiple tabs, tweak the state, and watch it sync instantly! 🌍


πŸ“š API

new OrbitSync(options)

  • options.storage: 'localStorage' or null (default: null).
  • options.channel: Unique string for sync (default: 'default-channel').
  • options.initialState: Object to seed the state (default: {}).

Methods

  • orbit.get(path): Retrieve a value by dot-separated path (e.g., 'user.name').
  • orbit.set(keyOrObj, value): Set a single key or merge an object into state.
  • orbit.update(key, updater): Update a key with a function.
  • orbit.subscribe(callback): Listen for state changes; returns an unsubscribe function.

🌟 Why OrbitSync?

  • Simple: Intuitive API, no steep learning curve.
  • Scalable: Ready for small scripts or massive apps.
  • Open-Source: Free forever under MIT license.

πŸ› οΈ Development

  1. Clone the repo:
    git clone https://github.com/SafwanGanz/orbitsync.git
    cd orbitsync
  2. Install dependencies:
    npm install
  3. Link locally:
    npm link

πŸ“œ License

MIT


🌌 Get Involved

  • ⭐ Star us on GitHub!
  • πŸ› Report bugs or suggest features in Issues.
  • πŸ“© Reach out for questions or collabs!

1.1.0

1 year ago

1.0.0

1 year ago