browser-storage

đŸ“±đŸ’»đŸ•čA async browser storage tool

View the Project on GitHub browser-storage/browser-storage

browser-storage

The tool is in beta. Use it with caution.

Build Status lerna Codacy Badge License: MIT

browser-storage is a async tool for storing and managing data in a browser. browser-storage does not use third-party packages for its work.

Packages

Install

$ npm i @browser-storage/core @browser-storage/localstorage-driver @browser-storage/websql-driver

Example

import { BrowserStorage } from '@browser-storage/core';
import { LocalstorageDriver } from '@browser-storage/localstorage-driver';
import { WebsqlDriver } from '@browser-storage/websql-driver';

const storage = new BrowserStorage({
  name: 'myDb',
  storeName: 'myStore',
  version: 1,
  drivers: [
    new WebsqlDriver({description: 'My first store', size: 2 * 1024 * 1024}),
    new LocalstorageDriver() // fallback, if websql is not supported
  ]
});

storage.setItem('a', 'b');

storage.getItem('a').then(console.log);

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { NgxBrowserStorageModule, NgxBrowserStorageService } from '@browser-storage/ngx-browser-storage';
import { LocalstorageDriver } from '@browser-storage/localstorage-driver';
import { mergeMap, tap } from 'rxjs/operators';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    NgxBrowserStorageModule.forRoot({
      version: 0,
      storeName: 'test',
      name: 'test',
      drivers: new LocalstorageDriver()
    })
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule {
  constructor(storage: NgxBrowserStorageService) {
    storage.setItem('a', 1).pipe(
      tap(console.log),
      mergeMap(() => storage.getItem('a')),
      tap(console.log)
    ).subscribe();
  }
}