@ultimate/vault v0.0.2
Installation
Install via npm i @ultimate/vault.
Documentation
ESModule: Import Vault into your TypeScript or JavaScript project and create a new instance:
import { Vault } from '@ultimate/vault';
const localStorage = new Vault();Global: Access window.Vault if you are not using a module system:
<script src="vault.min.js"></script>
<script>
// implicitly uses localStorage until specified
const localStorage = new Vault();
</script>Local or Session Storage
By default new Vault() will use localStorage. You may specify the type of storage:
const localStorage = new Vault({ type: 'local' });
const sessionStorage = new Vault({ type: 'session' });As Vault is a class each instance works independently.
Key Prefixes
Create a prefix for each Vault instance:
const localStorage = new Vault({ prefix: 'x9ea45' });All keys set into storage via this instance will be stored as x9ea45-<key>.
isSupported property
Browser support is IE8+ so this shouldn't be wildly needed, but it's there anyway:
const localStorage = new Vault();
if (localStorage.isSupported) {
// initialize...
}set<T>(key: string, value: T): void
Set a key and value into storage using the typed set method:
// TypeScript
const localStorage = new Vault();
interface User {
name: string
}
localStorage.set<User>('user', { name: 'Todd Motto' });All methods are available to use without TypeScript:
const localStorage = new Vault();
localStorage.set('user', { name: 'Todd Motto' });get<T>(key: string): T | undefined
Get a value from storage using the typed get method:
const localStorage = new Vault();
interface User {
name: string
}
localStorage.get<User>('user');remove(key: string): void
Remove an item from storage using the remove method:
const localStorage = new Vault();
localStorage.remove('user');removeAll(): void
Remove all items from storage:
const localStorage = new Vault();
localStorage.removeAll();onChange(key: string, fn: (e: StorageEvent) => void): () => void
Listen to the storage change event from another tab, which is emitted when any storage value is changed. Here we can specify to only listen to specific property changes:
const localStorage = new Vault();
const unsubscribe = localStorage.onChange('user', (e: StorageEvent) => {
// `user` was changed in another tab
// we could use this new data to sync our UI
console.log(e);
});
// remove the event listener when you're ready
unsubscribe();Get all values
Obtain all storage values by accessing the value getter:
const localStorage = new Vault();
console.log(localStorage.value); // { "user": "Todd Motto", ... }Returns an object with all keys and values. Values will remain a string type and will need parsing with JSON.parse() if you need to access the value.
Length of Storage
Access how many items are currently in storage with length:
const localStorage = new Vault();
console.log(localStorage.length); // 3