WebStorage(localStorage, sessionStorage) wrapper that has namespace, expire, and cleanup functions
var s1 = new GracefulStorage(localStorage, 'storage1');
s1.set('key1', { foo: 'bar' });
s1.get('key1');
// -> { foo: 'bar' }
s1.set('key2', 'val2', 1000);
s1.get('key2');
// -> val2
setTimeout(function() {
s1.get('key2');
// -> undefined
}, 1110);
new GracefulStorage(storage: WebStorage, namespace: String, validator: (key: String, value: JSONSerializable) => Boolean)
ベースとなるWebStorageオブジェクト (localStorage or sessionStorage)
ストレージ領域を論理的に分割するために用いられる。 生のローカルストレージでは以下のように保存される。 ex)
var s1 = new GracefulStorage(localStorage, 'storage1');
s1.set('key1', 'val1');
localStorage['GRACEFUL_STORAGE:storage1:key1']
// -> {"exptime": xxxxxxx, "data": "val1" }
指定されたWebStorageオブジェクトから、GracefulStorage管理下の値を全削除する。 この際、GracefulStorage管理外の物やwhitelistに列挙された物に対しては何も行わない。
削除したくないnamespaceの配列。
戻り値のBooleanは、セットできたかどうか。
undefined以外のJSON.stringifyを通るものならなんでも。
寿命をミリ秒で指定する。
値の取得。 値が入っていない場合はundefinedを返す。
値の削除。
指定されたexptimeで延命する。 戻り値のBooleanは延命できたかどうか。
該当GracefulStorageインスタンスの管理下にあるkey, valueを引数に、指定されたcallbackを呼び出す。 この際、callbackのスコープのthisはGracefulStorageインスタンスに設定される。
該当GracefulStorageインスタンスの管理下にあるkey, valueをオブジェクトに詰めて返す。
全削除。
$ npm install
$ npm test