1.1.1 • Published 11 months ago

@maspav/browser-storage v1.1.1

Weekly downloads
-
License
-
Repository
-
Last release
11 months ago

@maspav/browser-storage

Overview

@maspav/browser-storage is an Angular utility package designed to work seamlessly with Angular versions 14.2.0 and above. It provides browser storage functionalities with additional encryption and decryption capabilities using crypto-js.

Note: To fully leverage the capabilities of the maspav/browser-storage library, we highly recommend installing crypto-js.
This provides robust encryption and decryption, adding an essential layer of security to your stored data.

Installation

Installing the library using npm:

npm install @maspav/browser-storage

Methods

NameDescription
setStores the encrypted version of a key-value pair in localStorage. Requires key, data and secret as parameters.
getRetrieves and decrypts data from localStorage using the specified key and secret.
clearClears data from localStorage. If a key is passed, the data stored against the key is cleared. If no key is passed, all data in the local storage are cleared.
clearExceptClears all data except for the specified keys. Accepts an array of keys to retain.
encryptEncrypts data using a specified secret. This method is utilised internally by set and get but can be used independently as well.
decryptDecrypts data using the secret provided during encryption. This method is used internally by set and get but can also be used independently.

Usage

Import the Package into Your Angular Module

After installation, import the utilities provided by the library into your Angular module as follows:

import { AppComponent } from "./app.component";
import { BrowserStorageModule } from '@maspav/browser-storage';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserStorageModule],
  bootstrap: [AppComponent]
})

export class AppModule {}

Note: You have the option to import BrowserStorageModule directly as shown above, or configure it with a secret key using the forRoot method, as demonstrated below:

import { AppComponent } from "./app.component";
import { BrowserStorageModule } from '@maspav/browser-storage';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserStorageModule.forRoot({ secret: 'mySecretKey' })],
  bootstrap: [AppComponent]
})

export class AppModule {}

Accessing the Package within Your Component

The example below demonstrates how to store and retrieve the details of a currently logged-in user. It also includes ways to encrypt and decrypt data for added security among other relevant methods.

test.component.ts

import { BehaviorSubject } from 'rxjs';
import { Component } from '@angular/core';
import { BrowserStorageService } from '@maspav/browser-storage';

@Component({
  selector: 'app-test',
  templateUrl: './test.component.html'
})

export class TestComponent {
  text = "Hello World";
  secretKey = "mySecretKey";
  currentUser: any;

  constructor (public storageService: BrowserStorageService) {

    // `set` method example
    this.storageService.set('currentUser', { id: 1, name: 'John Doe' }, secretKey);

    // `get` method example
    this.currentUser = this.storageService.get('currentUser');

    // `clearExcept` method example
    this.storageService.clearExcept(['firstKey', 'secondKey']);
        
    // `clear with key` method example
    this.storageService.clear('firstKey');

    // `clear all` method example
    this.storageService.clear();

    // encrypt method example
    const encryptedText = this.storageService.encrypt(this.text, secretKey);

    // decrypt method example
    const decryptedText = this.storageService.decrypt(encryptedText, secretKey);
  }
}
1.1.1

11 months ago

1.1.0

11 months ago

1.0.0

11 months ago

0.0.1

12 months ago