1.0.0 • Published 4 years ago

@writetome51/object-in-local-storage v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

ObjectInLocalStorage

A TypeScript/JavaScript class representing an object or array stored in the
browser's localStorage. The item is identified by a unique string this.key
and stored as a key:value pair.
When you call the constructor, if the key argument is a string that isn't
empty and the value argument is not undefined or null, the item will be
stored immediately. Else, the item won't be stored until you call
this.set(value).

Note: this only works when run in a browser environment.

Constructor

constructor(
    key? = '',  // assigned to this.key

    value?: Object | any[]  = undefined
)
    // If `key` is not an empty string and `value` is defined, the item 
    // is stored immediately.

Properties

key: string // the unique ID for the stored object or array.

Methods

set(value: Object | any[]): void
    // Saves item `value` in storage.  Replaces previous value, if any.

get(): Object | any[]
    // Returns the stored object or array.

getAsJSON(): string
    // Returns stored object or array as JSON.

modify(changes: Object | any[]): void
    // `changes` does not replace the current value.  It is merged into the current value.

remove(): void
    // After calling this, both the key and value are no longer in
    // storage.  You can store the item again by calling this.set(value)

Usage Example

// It might be a good idea to name each class instance after its key.
// After instantiation, you wouldn't modify its `key` property.

let user1 = new ObjectInLocalStorage(
    'user1',
    {username: 'papasmurf', password: 'i_love_smurfette'}
);

let user2 = new ObjectInLocalStorage(
    'user2',
    {username: 'smurfette', password: 'i_love_papa'}
);

// Or, you could create a singleton instance to handle all stored objects,
// and change its `key` when you want to change what specific object to handle.

let objInLocalStorage = new ObjectInLocalStorage();
objInLocalStorage.key = 'user1';
objInLocalStorage.set({username: 'papasmurf', password: 'i_love_smurfette'});

objInLocalStorage.key = 'user2';
objInLocalStorage.set({username: 'smurfette', password: 'i_love_papa'});

Inheritance Chain

ObjectInLocalStorage <-- ObjectInBrowserStorage <--ItemInBrowserStorage

Installation

npm i  @writetome51/object-in-local-storage

Loading

import {ObjectInLocalStorage} from '@writetome51/object-in-local-storage';