strg.ts

A unified module to work with localStorage, sessionStorage and cookie with the same API

Usage no npm install needed!

<script type="module">
  import strgTs from 'https://cdn.skypack.dev/strg.ts';
</script>

README

strg.ts

Simple localStorage, sssionStorage and cookie operating library with the single API. It fully supports regular js.

Actually, it is a modern and well-typed version of strg.js

Getting started

with yarn:

yarn add strg.ts

or with npm:

npm i strg.ts

API

So, the strg.ts contains three objects with single API:
localstore - localStorage wrapper
sessionstore - sessionStorage wrapper
cookiestore - cookie wrapper
and the fourth object storage, that is localstore if localStorage is supported or cookiestore otherwise. bonus: fifth object available with flags of available APIs:

interface Available {
  local: boolean,
  session: boolean,
  cookie: boolean
}

Each of APIs has 5 functions:
set(key, value): sets key-value pair. JSON is supported in values
get(key): returns just value for the key. returns undefined if no value found
getAll(): returns object with all key-value pairs. JSON is parsed. returns {} on empty store
remove(key): removes key. returns undefined
removeAll(): remove all key-value pairs, returns undefined

In case of cookiestore, function set takes five params: key, value, expires, path, secure
expires: Date, number or string, that can be used in Date constructor
path: string, path for cookie
secure: bool, secure flag for cookie
Also, all objects contain two additional fields:
s: Storage object or document.cookie, for example: window.localStorage
type: string, storage type, for example 'localStorage'

Examples

storage.set('a', 1); // 1
storage.set('b', {c: [1, '2', {d: 3}]})); // {"c":[1,"2",{"d":3}]}
storage.getAll(); // {"a":1,"b":{"c":[1,"2",{"d":3}]}}

storage.set('c', 'some string'); // "some string"
storage.remove('b'); // undefined
storage.getAll(); // {"a":1,"c":"some string"}

storage.removeAll(); // undefined
storage.getAll(); // {}

Tests

yarn test                                   
# serve test  

And then just open test/test.html with browser (with serve it will be http://localhost:5000/test)

License

MIT