1.0.0 • Published 29 days ago

@fagforbundet/ngx-storage-bundle v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
29 days ago

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'
  }
}
1.0.0

29 days ago

0.0.1-rc.16

1 month ago

0.0.1-rc.15

2 months ago

0.0.1-rc.14

2 months ago

0.0.1-rc.13

3 months ago

0.0.1-rc.11

4 months ago

0.0.1-rc.12

4 months ago

0.0.1-rc.9

4 months ago

0.0.1-rc.3

5 months ago

0.0.1-rc.4

5 months ago

0.0.1-rc.7

5 months ago

0.0.1-rc.8

5 months ago

0.0.1-rc.5

5 months ago

0.0.1-rc.6

5 months ago

0.0.1-rc.2

5 months ago

0.0.1-rc.1

7 months ago