@fagforbundet/ngx-storage-bundle
v1.0.0
Published
Storage bundle. For storage purposes.
Downloads
7
Readme
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'
}
}