0.0.7 • Published 3 years ago

typesafe-local-storage v0.0.7

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

Typesafe Local Storage

A nice easy api for interacting with localStorage and keeping type safety.

Install the package:

yarn add typesafe-local-storage 
npm install typesafe-local-storage

You can also use Memory Storage This follows the same api as LocalStorage, but just uses memory.

import {MemoryStorage} from 'typesafe-local-storage';

MemoryStorage.set(...)
MemoryStorage.get(...)
// etc

WIP:

Events for change, update, delete actions.

Example:

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.onChange('test-item', (oldValue, newValue) => {
	console.log(oldValue, newValue);
	// emits:
	// "hello"
	// "hello world"
});
LocalStorage.onAny((type, key, value, oldValue) => {
	console.log(type, key, value, oldValue);
	// emits:
	// "add", "test-item", "hello", undefined
	// "change", "test-item", "hello world", "hello"
});

LocalStorage.set('test-item', 'hello');
LocalStorage.set('test-item', 'hello world');

Some examples:

Set an item

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.set('test', {testing : true});

Set an item which expires

Takes a "Date" object, which I might re-work in the future, it looks messy like this... but not sure how else to do it.

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.set('test', {testing : true}, new Date(new Date().getTime() + 5000));

LocalStorage.get('test'); // returns {testing : true}
setTimeout(() => {
	LocalStorage.get('test'); // returns undefined
}, 6000);

Get an item

import {LocalStorage} from 'typesafe-local-storage';

type Testing = { testing: true };

LocalStorage.get<Testing>('test');

// Set a default return type if it doesn't exist.

LocalStorage.get<Testing>('dfjhfsdh', null) === null;

Delete an item

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.delete('test');

Set localstorage prefix for all items

import {LocalStorage} from 'typesafe-local-storage';

// Default is "ls:"
LocalStorage.setPrefix('typesafe-local-storage:');

LocalStorage.set('testing');

// Will exist in localStorage as "typesafe-local-storage:testing"

Check if item exists

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.exists('testing');

Get item, create if it doesn't exist.

import {LocalStorage} from 'typesafe-local-storage';

const test = LocalStorage.getOrCreate('testing', {testing : true});

Update item, then return it.

import {LocalStorage} from 'typesafe-local-storage';

const test = LocalStorage.getOrUpdate('testing', {testing : false});

Delete all items of the specified prefix from localStorage

import {LocalStorage} from 'typesafe-local-storage';

LocalStorage.clear();
0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago