@fagforbundet/ngx-storage-bundle
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

NgxStorageBundle

This library contains the FfNgxStorageService which should be used to access browser storage, and when there's a need for in-memory storage. The library supports automatic revival of local and session storage instances, based on the way keys are maintained. It also supports TTL for the data stored, and will automatically remove any expired item from its store when the data expires.

Example usage

import { FfNgxStorage, FfNgxStorageDataChangeEventType } from '@fagforbundet/ngx-storage';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { DestroyRef } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
class SomeService {
  private storage: FfNgxStorage;

  constructor(
    private _destroyRef: DestroyRef,
    private _storageService: FfNgxStorageService
  ) {
    this.storage = this._storageService.useSessionStorage('some-custom-name');
    this.storage.setItem('ronny', {
        id: 42,
        firstName: 'Ronny',
        lastName: 'Leftlegs'
      }, 5000 // TTL of 5 seconds
    );
    this.storage.dataChanges().pipe(
      takeUntilDestroyed(this._destroyRef)
    ).subscribe((event: FfNgxStorageDataChangeEvent) => {
      if (event.type === FfNgxStorageDataChangeEventType.REMOVE) {
        console.log(`Item was removed from store ${event.store.getName()}`); // Item was removed from store some-custom-name
        console.log(event.data.data); // {id: 42,firstName: 'Ronny',lastName: 'Leftlegs'} 
      }
    });
  }

  someMethodThatUsesStorage() {
    this._storageService.useLocalStorage();
    this._storageService.getActiveStorage().setItem('someItem', 'doot'); // Stores 'doot' to the 'someItem' key to local storage
    this._storageService.useSessionStorage();
    const value = this._storageService.getActiveStorage().getItem('someItem'); // Fetches the value of the 'someItem' key from session storage

    console.log(value?.data); // 'doot'
  }
}

Package Sidebar

Install

npm i @fagforbundet/ngx-storage-bundle

Weekly Downloads

16

Version

1.0.0

License

MIT

Unpacked Size

159 kB

Total Files

36

Last publish

Collaborators

  • terjeballestad
  • gmhv
  • andreaslarssen
  • erichjsonfosse