Socket
Socket
Sign inDemoInstall

ambry

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.2 to 0.2.0

137

index.js

@@ -10,2 +10,6 @@ 'use strict';

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

@@ -17,5 +21,40 @@

var Storage = (function () {
var StrageDummy = (function () {
function StrageDummy() {
_classCallCheck(this, StrageDummy);
}
_createClass(StrageDummy, [{
key: 'setSchemeVersion',
value: function setSchemeVersion() {}
}, {
key: 'clear',
value: function clear() {}
}, {
key: 'prefixName',
value: function prefixName() {}
}, {
key: 'getItem',
value: function getItem() {}
}, {
key: 'removeItem',
value: function removeItem() {}
}, {
key: 'setItem',
value: function setItem() {}
}], [{
key: 'isQuotaExceeded',
value: function isQuotaExceeded() {}
}]);
return StrageDummy;
})();
var subscribes = {};
var Storage = (function (_StrageDummy) {
_inherits(Storage, _StrageDummy);
function Storage(_ref) {
var type = _ref.type;
var storage = _ref.storage;
var namespace = _ref.namespace;

@@ -27,15 +66,10 @@ var schemeVersion = _ref.schemeVersion;

var storage = window[type];
try {
var test = 'test';
storage.setItem(test, test);
storage.removeItem(test);
} catch (e) {
console.warn('No storage of type ' + type + ' available in this environment.');
}
this._storage = storage;
this._prefix = namespace ? namespace + '.' : '';
this._clearOnExceed = clearOnExceed;
this._schemeVersion = this.getItem(SCHEME_VERSION_FIELD_NAME);
this.setSchemeVersion(schemeVersion);
var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Storage).call(this));
_this._storage = storage;
_this._prefix = namespace ? namespace + '.' : '';
_this._clearOnExceed = clearOnExceed;
_this._schemeVersion = _this.getItem(SCHEME_VERSION_FIELD_NAME);
_this.setSchemeVersion(schemeVersion);
return _this;
}

@@ -79,3 +113,3 @@

try {
JSON.parse(this._storage.removeItem(this.prefixName(field)));
this._storage.removeItem(this.prefixName(field));
} catch (e) {

@@ -92,3 +126,3 @@ console.warn(e);

} catch (e) {
if (this.isQuotaExceeded(e)) {
if (Storage.isQuotaExceeded(e)) {
console.warn('Quote is exceeded.');

@@ -104,2 +138,14 @@ if (this._clearOnExceed) {

}
// TODO make it possible to do multiple subscribes
}, {
key: 'subscribe',
value: function subscribe(fn) {
subscribes[this._prefix] = fn;
}
}, {
key: 'unsubscribe',
value: function unsubscribe() {
delete subscribes[this._prefix];
}
}], [{

@@ -129,15 +175,50 @@ key: 'isQuotaExceeded',

return Storage;
})();
})(StrageDummy);
function createStorage(_ref2) {
var _ref2$type = _ref2.type;
var type = _ref2$type === undefined ? 'localStorage' : _ref2$type;
var _ref2$namespace = _ref2.namespace;
var namespace = _ref2$namespace === undefined ? null : _ref2$namespace;
var _ref2$schemeVersion = _ref2.schemeVersion;
var schemeVersion = _ref2$schemeVersion === undefined ? null : _ref2$schemeVersion;
var _ref2$clearOnExceed = _ref2.clearOnExceed;
var clearOnExceed = _ref2$clearOnExceed === undefined ? true : _ref2$clearOnExceed;
function isStorageAvailable(storage) {
try {
var test = 'test';
storage.setItem(test, test);
storage.removeItem(test);
return true;
} catch (e) {
return false;
}
}
return new Storage({ type: type, schemeVersion: schemeVersion, namespace: namespace, clearOnExceed: clearOnExceed });
window.addEventListener('storage', function (_ref2) {
var key = _ref2.key;
var oldValue = _ref2.oldValue;
var newValue = _ref2.newValue;
Object.keys(subscribes).forEach(function (prefix) {
if (key.indexOf(prefix) === 0) {
subscribes[prefix](key.replace(prefix, ''),
// TODO warn if parsing fails
JSON.parse(oldValue), JSON.parse(newValue));
}
});
}, false);
function createStorage(_ref3) {
var _ref3$type = _ref3.type;
var type = _ref3$type === undefined ? 'localStorage' : _ref3$type;
var _ref3$namespace = _ref3.namespace;
var namespace = _ref3$namespace === undefined ? null : _ref3$namespace;
var _ref3$schemeVersion = _ref3.schemeVersion;
var schemeVersion = _ref3$schemeVersion === undefined ? null : _ref3$schemeVersion;
var _ref3$clearOnExceed = _ref3.clearOnExceed;
var clearOnExceed = _ref3$clearOnExceed === undefined ? true : _ref3$clearOnExceed;
var _ref3$doNotThrow = _ref3.doNotThrow;
var doNotThrow = _ref3$doNotThrow === undefined ? true : _ref3$doNotThrow;
var storage = window[type];
if (storage && isStorageAvailable(storage)) {
return new Storage({ storage: storage, schemeVersion: schemeVersion, namespace: namespace, clearOnExceed: clearOnExceed });
}
if (doNotThrow) {
console.warn('WebStorages are not available in current environment.');
return new StrageDummy();
}
throw new Error('WebStorages are not available in current environment.');
}
{
"name": "ambry",
"version": "0.1.2",
"version": "0.2.0",
"description": "WebStorage wrapper that makes your life easier",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc