Package Exports
- storage-typed
 - storage-typed/dst/index.js
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (storage-typed) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
storage-typed
Web Storage only accepts string value so you should write this verbose code everytime:
// get
try {
  const value = window.localStorage.getItem(key);
  return value ? JSON.parse(value) : null;
} catch (e) {
  /* ... */
}
// set
window.localStorage.setItem(key, JSON.stringify(value));And it does not provide any type-specific operation. (e.g. increasing number value, push to array)
// increasing count
const count = JSON.parse(window.localStorage.getItem(key));
window.localStorage.setItem(key, JSON.stringify(count + 1));
// push to array
const arr = JSON.parse(window.localStorage.getItem(key));
window.localStorage.setItem(key, JSON.stringify([...arr, value]));So storage-typed resolves all things above.
const count = TypedStorageFactory.create("count", 0); // NumberTypedStorage
count.increase();
count.get(); // 1
const arr = TypedStorageFactory.create("array", ["foo"]); // ArrayTypedStorage
arr.pop(); // "foo"
arr.push("bar");
arr.get(); // ["bar"]
/* and any other types... */API References
TypedStorageFactory
Creates TypedStorage by type of passed initial value. Note test code.
TypedStorageFactory.create<T>(key, initialValue, options);- create: 
(key, initialValue, options) => TypedStorage<T> | NumberTypedStorage | BooleanTypedStorage | ArrayTypedStorage<T[number]>- returns instanceof 
TypedStorageby type of passed initial value - parameters
- key: 
string- required
 - unique key for value
 
 - initialValue: 
T- required
 - any value which 
TypedStoragewill be initialized with 
 - options: 
TypedStorageOptions<T>- optional
 - note TypedStorageOptions
 
 
 - key: 
 
 - returns instanceof 
 
TypedStorage
Provides JSON parsing/stringifying. Note test code.
const storage = new TypedStorage<T>(key, initialValue, options);
storage.get();
storage.set(value);constructor:
(key, initialValue, options) => TypedStorage<T>- returns instanceof 
TypedStorageby type of passed initial value - parameters
- key: 
string- required
 - unique key for value
 
 - initialValue: 
T- required
 - any value which 
TypedStoragewill be initialized with 
 - options: 
TypedStorageOptions<T>- optional
 - note TypedStorageOptions
 
 
 - key: 
 
- returns instanceof 
 get:
() => T- returns current value
 
set:
(next) => void- sets current value to passed value
 - parameters
- next: 
T- required
 - next value
 
 
 - next: 
 
TypedStorageOptions
interface TypedStorageOptions<T> {
  storage?: Storage;
}- storage: 
StorageStoragewhichTypedStoragewill use
 
NumberTypedStorage
Extends number-specific methods based on TypedStorage API. Note test code.
const storage = new NumberTypedStorage(key, initialValue, options);
storage.increase();
storage.decrease();constructor:
(key, initialValue, options) => TypedStorage<number>- returns instanceof 
TypedStorageby type of passed initial value - parameters
- key: 
string- required
 - unique key for value
 
 - initialValue: 
number- required
 - any value which 
NumberTypedStoragewill be initialized with 
 - options: 
TypedStorageOptions<number>- optional
 - note TypedStorageOptions
 
 
 - key: 
 
- returns instanceof 
 increase:
() => void- adds 1 to current value
 
decrease:
() => void- subtracts 1 from current value
 
BooleanTypedStorage
Extends boolean-specific methods based on TypedStorage API. Note test code.
const storage = new BooleanTypedStorage(key, initialValue, options);
storage.toggle();
storage.true();
storage.false();constructor:
(key, initialValue, options) => TypedStorage<boolean>- returns instanceof 
TypedStorageby type of passed initial value - parameters
- key: 
string- required
 - unique key for value
 
 - initialValue: 
boolean- required
 - any value which 
BooleanTypedStoragewill be initialized with 
 - options: 
TypedStorageOptions<boolean>- optional
 - note TypedStorageOptions
 
 
 - key: 
 
- returns instanceof 
 toggle:
() => void- reverses current value
 
true:
() => void- sets current value to true
 
false:
() => void- sets current value to false
 
ArrayTypedStorage
Extends number-specific methods based on TypedStorage API. Note test code.
const storage = new ArrayTypedStorage<T>(key, initialValue, options);
storage.push(value);
storage.pop();constructor:
(key, initialValue, options) => TypedStorage<T[]>- returns instanceof 
TypedStorageby type of passed initial value - parameters
- key: 
string- required
 - unique key for value
 
 - initialValue: 
T[]- required
 - any value which 
NumberTypedStoragewill be initialized with 
 - options: 
TypedStorageOptions<T[]>- optional
 - note TypedStorageOptions
 
 
 - key: 
 
- returns instanceof 
 push:
(value: T) => void- appends value to the end of current array
 
pop:
() => T | null- removes last value of current array. if it is empty, 
popreturns null. 
- removes last value of current array. if it is empty,