Comparing version 2.9.0 to 2.10.0
@@ -200,7 +200,7 @@ ;(function(){ | ||
require.register("store/dist/store2.js", function(exports, require, module){ | ||
/*! store2 - v2.9.0 - 2019-08-21 | ||
/*! store2 - v2.10.0 - 2019-09-27 | ||
* Copyright (c) 2019 Nathan Bubna; Licensed (MIT OR GPL-3.0) */ | ||
;(function(window, define) { | ||
var _ = { | ||
version: "2.9.0", | ||
version: "2.10.0", | ||
areas: {}, | ||
@@ -259,3 +259,3 @@ apis: {}, | ||
if (!store._area) { | ||
store._area = _.inherit(_.storageAPI, { items: {}, name: 'fake' }); | ||
store._area = _.storage('fake'); | ||
} | ||
@@ -281,3 +281,3 @@ store._ns = namespace || ''; | ||
}, | ||
namespace: function(namespace, noSession) { | ||
namespace: function(namespace, singleArea) { | ||
if (!namespace){ | ||
@@ -290,3 +290,7 @@ return this._ns ? this._ns.substring(0,this._ns.length-1) : ''; | ||
if (!this[ns]){ this[ns] = store; } | ||
if (!noSession){ store.area('session', _.areas.session); } | ||
if (!singleArea) { | ||
for (var name in _.areas) { | ||
store.area(name, _.areas[name]); | ||
} | ||
} | ||
} | ||
@@ -409,2 +413,5 @@ return store; | ||
},// end _.storeAPI | ||
storage: function(name) { | ||
return _.inherit(_.storageAPI, { items: {}, name: name }); | ||
}, | ||
storageAPI: { | ||
@@ -434,4 +441,3 @@ length: 0, | ||
getItem: function(k){ return this.has(k) ? this.items[k] : null; }, | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } }, | ||
toString: function(){ return this.length+' items in '+this.name+'Storage'; } | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } } | ||
}// end _.storageAPI | ||
@@ -447,2 +453,3 @@ }; | ||
store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); | ||
store.area("page", _.storage("page")); | ||
@@ -449,0 +456,0 @@ if (typeof define === 'function' && define.amd !== undefined) { |
@@ -1,6 +0,6 @@ | ||
/*! store2 - v2.9.0 - 2019-08-21 | ||
/*! store2 - v2.10.0 - 2019-09-27 | ||
* Copyright (c) 2019 Nathan Bubna; Licensed (MIT OR GPL-3.0) */ | ||
;(function(window, define) { | ||
var _ = { | ||
version: "2.9.0", | ||
version: "2.10.0", | ||
areas: {}, | ||
@@ -59,3 +59,3 @@ apis: {}, | ||
if (!store._area) { | ||
store._area = _.inherit(_.storageAPI, { items: {}, name: 'fake' }); | ||
store._area = _.storage('fake'); | ||
} | ||
@@ -81,3 +81,3 @@ store._ns = namespace || ''; | ||
}, | ||
namespace: function(namespace, noSession) { | ||
namespace: function(namespace, singleArea) { | ||
if (!namespace){ | ||
@@ -90,3 +90,7 @@ return this._ns ? this._ns.substring(0,this._ns.length-1) : ''; | ||
if (!this[ns]){ this[ns] = store; } | ||
if (!noSession){ store.area('session', _.areas.session); } | ||
if (!singleArea) { | ||
for (var name in _.areas) { | ||
store.area(name, _.areas[name]); | ||
} | ||
} | ||
} | ||
@@ -209,2 +213,5 @@ return store; | ||
},// end _.storeAPI | ||
storage: function(name) { | ||
return _.inherit(_.storageAPI, { items: {}, name: name }); | ||
}, | ||
storageAPI: { | ||
@@ -234,4 +241,3 @@ length: 0, | ||
getItem: function(k){ return this.has(k) ? this.items[k] : null; }, | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } }, | ||
toString: function(){ return this.length+' items in '+this.name+'Storage'; } | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } } | ||
}// end _.storageAPI | ||
@@ -247,2 +253,3 @@ }; | ||
store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); | ||
store.area("page", _.storage("page")); | ||
@@ -249,0 +256,0 @@ if (typeof define === 'function' && define.amd !== undefined) { |
@@ -1,5 +0,5 @@ | ||
/*! store2 - v2.9.0 - 2019-08-21 | ||
/*! store2 - v2.10.0 - 2019-09-27 | ||
* Copyright (c) 2019 Nathan Bubna; Licensed (MIT OR GPL-3.0) */ | ||
!function(a,b){var c={version:"2.9.0",areas:{},apis:{},inherit:function(a,b){for(var c in a)b.hasOwnProperty(c)||Object.defineProperty(b,c,Object.getOwnPropertyDescriptor(a,c));return b},stringify:function(a){return void 0===a||"function"==typeof a?a+"":JSON.stringify(a)},parse:function(a){try{return JSON.parse(a)}catch(b){return a}},fn:function(a,b){c.storeAPI[a]=b;for(var d in c.apis)c.apis[d][a]=b},get:function(a,b){return a.getItem(b)},set:function(a,b,c){a.setItem(b,c)},remove:function(a,b){a.removeItem(b)},key:function(a,b){return a.key(b)},length:function(a){return a.length},clear:function(a){a.clear()},Store:function(a,b,d){var e=c.inherit(c.storeAPI,function(a,b,c){return 0===arguments.length?e.getAll():"function"==typeof b?e.transact(a,b,c):void 0!==b?e.set(a,b,c):"string"==typeof a||"number"==typeof a?e.get(a):"function"==typeof a?e.each(a):a?e.setAll(a,b):e.clear()});e._id=a;try{b.setItem("_-bad-_","wolf"),e._area=b,b.removeItem("_-bad-_")}catch(a){}return e._area||(e._area=c.inherit(c.storageAPI,{items:{},name:"fake"})),e._ns=d||"",c.areas[a]||(c.areas[a]=e._area),c.apis[e._ns+e._id]||(c.apis[e._ns+e._id]=e),e},storeAPI:{area:function(a,b){var d=this[a];return d&&d.area||(d=c.Store(a,b,this._ns),this[a]||(this[a]=d)),d},namespace:function(a,b){if(!a)return this._ns?this._ns.substring(0,this._ns.length-1):"";var d=a,e=this[d];return e&&e.namespace||(e=c.Store(this._id,this._area,this._ns+d+"."),this[d]||(this[d]=e),b||e.area("session",c.areas.session)),e},isFake:function(){return"fake"===this._area.name},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(a){return this._area.has?this._area.has(this._in(a)):!!(this._in(a)in this._area)},size:function(){return this.keys().length},each:function(a,b){for(var d=0,e=c.length(this._area);d<e;d++){var f=this._out(c.key(this._area,d));if(void 0!==f&&!1===a.call(this,f,this.get(f),b))break;e>c.length(this._area)&&(e--,d--)}return b||this},keys:function(a){return this.each(function(a,b,c){c.push(a)},a||[])},get:function(a,b){var d=c.get(this._area,this._in(a));return null!==d?c.parse(d):b||d},getAll:function(a){return this.each(function(a,b,c){c[a]=b},a||{})},transact:function(a,b,c){var d=this.get(a,c),e=b(d);return this.set(a,void 0===e?d:e),this},set:function(a,b,d){var e=this.get(a);return null!=e&&!1===d?b:c.set(this._area,this._in(a),c.stringify(b),d)||e},setAll:function(a,b){var c,d;for(var e in a)d=a[e],this.set(e,d,b)!==d&&(c=!0);return c},add:function(a,b){var d=this.get(a);if(d instanceof Array)b=d.concat(b);else if(null!==d){var e=typeof d;if(e===typeof b&&"object"===e){for(var f in b)d[f]=b[f];b=d}else b=d+b}return c.set(this._area,this._in(a),c.stringify(b)),b},remove:function(a,b){var d=this.get(a,b);return c.remove(this._area,this._in(a)),d},clear:function(){return this._ns?this.each(function(a){c.remove(this._area,this._in(a))},1):c.clear(this._area),this},clearAll:function(){var a=this._area;for(var b in c.areas)c.areas.hasOwnProperty(b)&&(this._area=c.areas[b],this.clear());return this._area=a,this},_in:function(a){return"string"!=typeof a&&(a=c.stringify(a)),this._ns?this._ns+a:a},_out:function(a){return this._ns?a&&0===a.indexOf(this._ns)?a.substring(this._ns.length):void 0:a}},storageAPI:{length:0,has:function(a){return this.items.hasOwnProperty(a)},key:function(a){var b=0;for(var c in this.items)if(this.has(c)&&a===b++)return c},setItem:function(a,b){this.has(a)||this.length++,this.items[a]=b},removeItem:function(a){this.has(a)&&(delete this.items[a],this.length--)},getItem:function(a){return this.has(a)?this.items[a]:null},clear:function(){for(var a in this.items)this.removeItem(a)},toString:function(){return this.length+" items in "+this.name+"Storage"}}},d=c.Store("local",function(){try{return localStorage}catch(a){}}());d.local=d,d._=c,d.area("session",function(){try{return sessionStorage}catch(a){}}()),"function"==typeof b&&void 0!==b.amd?b("store2",[],function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:(a.store&&(c.conflict=a.store),a.store=d)}(this,this&&this.define); | ||
!function(a,b){var c={version:"2.10.0",areas:{},apis:{},inherit:function(a,b){for(var c in a)b.hasOwnProperty(c)||Object.defineProperty(b,c,Object.getOwnPropertyDescriptor(a,c));return b},stringify:function(a){return void 0===a||"function"==typeof a?a+"":JSON.stringify(a)},parse:function(a){try{return JSON.parse(a)}catch(b){return a}},fn:function(a,b){c.storeAPI[a]=b;for(var d in c.apis)c.apis[d][a]=b},get:function(a,b){return a.getItem(b)},set:function(a,b,c){a.setItem(b,c)},remove:function(a,b){a.removeItem(b)},key:function(a,b){return a.key(b)},length:function(a){return a.length},clear:function(a){a.clear()},Store:function(a,b,d){var e=c.inherit(c.storeAPI,function(a,b,c){return 0===arguments.length?e.getAll():"function"==typeof b?e.transact(a,b,c):void 0!==b?e.set(a,b,c):"string"==typeof a||"number"==typeof a?e.get(a):"function"==typeof a?e.each(a):a?e.setAll(a,b):e.clear()});e._id=a;try{b.setItem("_-bad-_","wolf"),e._area=b,b.removeItem("_-bad-_")}catch(a){}return e._area||(e._area=c.storage("fake")),e._ns=d||"",c.areas[a]||(c.areas[a]=e._area),c.apis[e._ns+e._id]||(c.apis[e._ns+e._id]=e),e},storeAPI:{area:function(a,b){var d=this[a];return d&&d.area||(d=c.Store(a,b,this._ns),this[a]||(this[a]=d)),d},namespace:function(a,b){if(!a)return this._ns?this._ns.substring(0,this._ns.length-1):"";var d=a,e=this[d];if(!(e&&e.namespace||(e=c.Store(this._id,this._area,this._ns+d+"."),this[d]||(this[d]=e),b)))for(var f in c.areas)e.area(f,c.areas[f]);return e},isFake:function(){return"fake"===this._area.name},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(a){return this._area.has?this._area.has(this._in(a)):!!(this._in(a)in this._area)},size:function(){return this.keys().length},each:function(a,b){for(var d=0,e=c.length(this._area);d<e;d++){var f=this._out(c.key(this._area,d));if(void 0!==f&&!1===a.call(this,f,this.get(f),b))break;e>c.length(this._area)&&(e--,d--)}return b||this},keys:function(a){return this.each(function(a,b,c){c.push(a)},a||[])},get:function(a,b){var d=c.get(this._area,this._in(a));return null!==d?c.parse(d):b||d},getAll:function(a){return this.each(function(a,b,c){c[a]=b},a||{})},transact:function(a,b,c){var d=this.get(a,c),e=b(d);return this.set(a,void 0===e?d:e),this},set:function(a,b,d){var e=this.get(a);return null!=e&&!1===d?b:c.set(this._area,this._in(a),c.stringify(b),d)||e},setAll:function(a,b){var c,d;for(var e in a)d=a[e],this.set(e,d,b)!==d&&(c=!0);return c},add:function(a,b){var d=this.get(a);if(d instanceof Array)b=d.concat(b);else if(null!==d){var e=typeof d;if(e===typeof b&&"object"===e){for(var f in b)d[f]=b[f];b=d}else b=d+b}return c.set(this._area,this._in(a),c.stringify(b)),b},remove:function(a,b){var d=this.get(a,b);return c.remove(this._area,this._in(a)),d},clear:function(){return this._ns?this.each(function(a){c.remove(this._area,this._in(a))},1):c.clear(this._area),this},clearAll:function(){var a=this._area;for(var b in c.areas)c.areas.hasOwnProperty(b)&&(this._area=c.areas[b],this.clear());return this._area=a,this},_in:function(a){return"string"!=typeof a&&(a=c.stringify(a)),this._ns?this._ns+a:a},_out:function(a){return this._ns?a&&0===a.indexOf(this._ns)?a.substring(this._ns.length):void 0:a}},storage:function(a){return c.inherit(c.storageAPI,{items:{},name:a})},storageAPI:{length:0,has:function(a){return this.items.hasOwnProperty(a)},key:function(a){var b=0;for(var c in this.items)if(this.has(c)&&a===b++)return c},setItem:function(a,b){this.has(a)||this.length++,this.items[a]=b},removeItem:function(a){this.has(a)&&(delete this.items[a],this.length--)},getItem:function(a){return this.has(a)?this.items[a]:null},clear:function(){for(var a in this.items)this.removeItem(a)}}},d=c.Store("local",function(){try{return localStorage}catch(a){}}());d.local=d,d._=c,d.area("session",function(){try{return sessionStorage}catch(a){}}()),d.area("page",c.storage("page")),"function"==typeof b&&void 0!==b.amd?b("store2",[],function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:(a.store&&(c.conflict=a.store),a.store=d)}(this,this&&this.define); | ||
//# sourceMappingURL=store2.min.js.map |
{ | ||
"name": "store2", | ||
"version": "2.9.0", | ||
"version": "2.10.0", | ||
"description": "Better localStorage", | ||
@@ -34,3 +34,3 @@ "keywords": [ | ||
"scripts": { | ||
"prepubishOnly": "grunt && git commit -m \"$npm_package_version\" README.md *.json dist && git tag $npm_package_version && git push && git push --tags", | ||
"prepublishOnly": "grunt && git commit -m \"$npm_package_version\" README.md *.json dist && git tag $npm_package_version && git push && git push --tags", | ||
"test": "grunt qunit" | ||
@@ -37,0 +37,0 @@ }, |
@@ -93,4 +93,10 @@ A feature-filled and friendly way to take advantage of localStorage and sessionStorage | ||
``` | ||
All the specific ```get```, ```set```, etc. functions are available on both ```store.session``` and ```store.local```, as well as any other storage facility registered via ```store.area(name, customStorageObject)``` by an extension, where customStorageObject must implement the [Storage interface][storage]. This is how [store.old.js][old] extends store.js to support older versions of IE and Firefox. | ||
There is also a store API automatically available for keeping non-persistent information, | ||
meant only to last until page reload. | ||
```javascript | ||
store.page("until","reload"); | ||
``` | ||
All the specific ```get```, ```set```, etc. functions are available on ```store.session```, ```store.local```, and ```store.page```, as well as any other storage facility registered via ```store.area(name, customStorageObject)``` by an extension, where customStorageObject must implement the [Storage interface][storage]. This is how [store.old.js][old] extends store.js to support older versions of IE and Firefox. | ||
[storage]: http://dev.w3.org/html5/webstorage/#the-storage-interface | ||
@@ -116,4 +122,4 @@ | ||
```javascript | ||
store.namespace(prefix[, noSession]);// returns a new store API that prefixes all key-based functions | ||
store.isFake();// is this storage persistent? (e.g. is this old IE?) | ||
store.namespace(prefix);// returns a new store API that prefixes all key-based functions | ||
store.isFake();// is this actually localStorage/sessionStorage or an in-memory fallback? | ||
``` | ||
@@ -212,2 +218,3 @@ | ||
* 2019-08-21 [v2.9.0][] (public) - Add store.remove(key, alt) to match behavior of store.get(key, alt) (Issue #68) | ||
* 2019-09-27 [v2.10.0][] (public) - Add ```store.page``` to provide page scope storage to complement local and session scope storage. (Issue #69) | ||
@@ -232,1 +239,2 @@ [v2.0.3]: https://github.com/nbubna/store/tree/2.0.3 | ||
[v2.9.0]: https://github.com/nbubna/store/tree/2.9.0 | ||
[v2.10.0]: https://github.com/nbubna/store/tree/2.10.0 |
@@ -63,3 +63,3 @@ /** | ||
if (!store._area) { | ||
store._area = _.inherit(_.storageAPI, { items: {}, name: 'fake' }); | ||
store._area = _.storage('fake'); | ||
} | ||
@@ -85,3 +85,3 @@ store._ns = namespace || ''; | ||
}, | ||
namespace: function(namespace, noSession) { | ||
namespace: function(namespace, singleArea) { | ||
if (!namespace){ | ||
@@ -94,3 +94,7 @@ return this._ns ? this._ns.substring(0,this._ns.length-1) : ''; | ||
if (!this[ns]){ this[ns] = store; } | ||
if (!noSession){ store.area('session', _.areas.session); } | ||
if (!singleArea) { | ||
for (var name in _.areas) { | ||
store.area(name, _.areas[name]); | ||
} | ||
} | ||
} | ||
@@ -213,2 +217,5 @@ return store; | ||
},// end _.storeAPI | ||
storage: function(name) { | ||
return _.inherit(_.storageAPI, { items: {}, name: name }); | ||
}, | ||
storageAPI: { | ||
@@ -238,4 +245,3 @@ length: 0, | ||
getItem: function(k){ return this.has(k) ? this.items[k] : null; }, | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } }, | ||
toString: function(){ return this.length+' items in '+this.name+'Storage'; } | ||
clear: function(){ for (var k in this.items){ this.removeItem(k); } } | ||
}// end _.storageAPI | ||
@@ -251,2 +257,3 @@ }; | ||
store.area("session", (function(){try{ return sessionStorage; }catch(e){}})()); | ||
store.area("page", _.storage("page")); | ||
@@ -253,0 +260,0 @@ if (typeof define === 'function' && define.amd !== undefined) { |
Sorry, the diff of this file is not supported yet
118580
2548
237