@waelio/ustore
TypeScript icon, indicating that this package has built-in type declarations

0.0.114 • Public • Published

A universal store cross-frameworks

@waelio/ustore

Visit the source code ustore on gitHub.

Join the chat at https://discord.gg/tBZ2Fmdb7E NPM version NPM monthly downloads NPM total downloadsDonate


uStore project is a plugin I'v wanted for a while, the ability to have my own state-management in my projects.

As this is a pilot, please feel free to join the discussion. All are welcomed.


For more examples, please vitit testing-ustore for help.


Crurrent stores:

  1. local: local
  2. session: session
  3. cookie: cookie
  4. vuex: vuex
  5. pinia: pinia
  6. gun: gun
  7. memory: memory
  8. secure: secure
  9. config: config
  10. idb: index Db -pending
  11. webql: wb sql -pending

local

Window local Storage, see docs below

import { uStore, localStorage } from '@waelio/ustore';

describe('Local storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.local.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.local.get(label)).toEqual(payload);
  });
  localStorage.set(label, payload);
  test('localStorage set & get', () => {
    expect(localStorage.get(label)).toEqual(payload);
  });
});

Back to TOP

session

Window session Storage, see docs below

import { uStore, sessionStorage } from '@waelio/ustore';

describe('Session storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.session.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.session.get(label)).toEqual(payload);
  });
  sessionStorage.set(label, payload);
  test('sessionStorage set & get', () => {
    expect(sessionStorage.get(label)).toEqual(payload);
  });
});

Back to TOP

cookie

Document Cookies, see docs below

import { uStore, cookieStorage } from '@waelio/ustore';

describe('Cookie storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.cookie.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.cookie.get(label)).toEqual(`${label}=${payload}`);
  });
  cookieStorage.set(label, payload);
  test('cookieStorage set & get', () => {
    expect(cookieStorage.get(label)).toEqual(`${label}=${payload}`);
  });
});

Back to TOP

vuex

Vue state management, see docs below

import { uStore, vuexStorage } from '@waelio/ustore';

describe('Vuex storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.vuex.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.vuex.get()).toEqual(payload);
  });
  vuexStorage.set(label, payload);
  test('vuexStorage set & get', () => {
    expect(vuexStorage.get()).toEqual(payload);
  });
});

Back to TOP

pinia

Pinia State Management, see docs below

import { uStore, piniaStorage } from '@waelio/ustore';

describe('Pinia storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.pinia.set(payload);
  test('pinia set & get', () => {
    expect(uStore.pinia.get()).toEqual(payload);
  });
  piniaStorage.set(payload);
  test('piniaStorage set & get', () => {
    expect(piniaStorage.get()).toEqual(payload);
  });
});

Back to TOP

gun

Gun DB, , see docs below

import { uStore } from '@waelio/ustore';

// Did not pass testing yet
uStore.gun.set('testName', 'test Payload');
uStore.gun.get('testName') === 'test Payload';

Back to TOP

memory

In memory storage

import { uStore, memoryStorage } from '@waelio/ustore';

describe('Memory storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.memory.set(label, payload);

  test('uStore set & get', () => {
    expect(uStore.memory.get(label)).toEqual(payload);
  });
  memoryStorage.set(label, payload);
  test('memoryStorage set & get', () => {
    expect(memoryStorage.get(label)).toEqual(payload);
  });
});

Back to TOP

secure

Enctypted and Decrypted storage

import { uStore, secureStorage } from '@waelio/ustore';

describe('Secure storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.secure.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.secure.getItem(label)).toEqual(payload);
  });
  secureStorage.set(label, payload);
  test('secureStorage set & get', () => {
    expect(secureStorage.getItem(label)).toEqual(payload);
  });
});

Back to TOP

config

Config is home-brewed solution, more documentations coming soon.

import { uStore, configStorage } from '@waelio/ustore';

const payload = 'Test Payload1';
const label = 'test';

describe('uStore Storage', () => {
  uStore.config.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.config.getItem(label)).toEqual(payload);
  });
  configStorage.set(label, payload);
  test('configStorage set & get', () => {
    expect(configStorage.getItem(label)).toEqual(payload);
  });
});

Back to TOP

idb

Not implemented yet

import { uStore, idbStorage } from '@waelio/ustore';

describe('Idb storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.idb.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.idb.getItem(label)).toEqual(payload);
  });
  idbStorage.set(label, payload);
  test('idbStorage set & get', () => {
    expect(idbStorage.getItem(label)).toEqual(payload);
  });
});

Back to TOP

webql

Not implemented yet

import { uStore, webqlStorage } from '@waelio/ustore';

describe('webqlStorage storage', () => {
  const payload = 'Test Payload1';
  const label = 'test';
  uStore.webql.set(label, payload);
  test('uStore set & get', () => {
    expect(uStore.webql.getItem(label)).toEqual(payload);
  });
  webqlStorage.set(label, payload);
  test('webqlStorage set & get', () => {
    expect(webqlStorage.getItem(label)).toEqual(payload);
  });
});

Back to TOP

References

  • Window Local storage
  • Window Session Storage
  • Document Cookie storage
  • Vuex state management
  • Pinia state management
  • Gun DB

  • Back to TOP

    Package Sidebar

    Install

    npm i @waelio/ustore

    Weekly Downloads

    1

    Version

    0.0.114

    License

    MIT

    Unpacked Size

    523 kB

    Total Files

    232

    Last publish

    Collaborators

    • waelio