đ±đ»đčA async browser storage tool
The tool is in beta. Use it with caution.
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.
$ npm i @browser-storage/core @browser-storage/localstorage-driver @browser-storage/websql-driver
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();
}
}