Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@planet/user-store

Package Overview
Dependencies
Maintainers
12
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@planet/user-store - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0

28

lib/store.js
var key = '@planet/user-store#2';
var User = require('./user');
var store = require('store/dist/store.modern');
exports.get = function() {
var user = null;
var value = localStorage.getItem(key);
if (value) {
user = User.deserialize(value);
try {
user = store.get(key) || null;
} catch (_) {
// pass
}

@@ -15,6 +16,21 @@ return user;

if (user) {
localStorage.setItem(key, User.serialize(user));
var keys = Object.keys(user);
if (keys.length > 1) {
throw new Error('User store only supports a token property');
}
if (typeof user.token !== 'string') {
throw new Error('User token must be a string');
}
try {
store.set(key, user);
} catch (_) {
// pass
}
} else {
localStorage.removeItem(key);
try {
store.remove(key);
} catch (_) {
// pass
}
}
};
{
"name": "@planet/user-store",
"version": "2.0.0",
"version": "2.1.0",
"description": "Simple event emitting store for Planet users",

@@ -21,11 +21,12 @@ "license": "Apache-2.0",

"dependencies": {
"store": "^2.0.4",
"tiny-emitter": "^1.0.2"
},
"devDependencies": {
"code": "^3.0.2",
"eslint": "^3.2.2",
"eslint-config-planet": "^9.0.0",
"lab": "^10.9.0",
"sinon": "^1.17.5",
"watchy": "^0.6.6"
"code": "^4.0.0",
"eslint": "^3.17.1",
"eslint-config-planet": "^12.0.0",
"lab": "^12.1.0",
"sinon": "^1.17.7",
"watchy": "^0.6.7"
},

@@ -32,0 +33,0 @@ "eslintConfig": {

@@ -42,3 +42,3 @@ # User Store

Store a user in `localStorage`. The user must be serializable as JSON. Calls to `set()` trigger an `update` event. Call with `null` to clear the stored user. Note that as of version 2, the user object can only contain a string `token` property. This may change in future major versions.
Store a user in `localStorage` (with fallbacks to `sessionStorage`, cookie, and memory). The user must be serializable as JSON. Calls to `set()` trigger an `update` event. Call with `null` to clear the stored user. Note that as of version 2, the user object can only contain a string `token` property. This may change in future major versions.

@@ -45,0 +45,0 @@ ### `store.on('update', callback [, thisObj])`

@@ -0,1 +1,2 @@

var _store = require('store/dist/store.modern');
var api = require('../../lib/index');

@@ -5,10 +6,10 @@ var expect = require('code').expect;

var sinon = require('sinon');
var util = require('../util');
lab.experiment('API', function() {
lab.beforeEach(util.mockStorage);
lab.afterEach(function(done) {
_store.clearAll();
done();
});
lab.afterEach(util.restoreStorage);
lab.experiment('set()', function() {

@@ -15,0 +16,0 @@

@@ -0,12 +1,13 @@

var _store = require('store/dist/store.modern');
var expect = require('code').expect;
var lab = exports.lab = require('lab').script();
var store = require('../../lib/store');
var util = require('../util');
lab.experiment('store', function() {
lab.beforeEach(util.mockStorage);
lab.afterEach(function(done) {
_store.clearAll();
done();
});
lab.afterEach(util.restoreStorage);
lab.experiment('set()', function() {

@@ -30,2 +31,20 @@

lab.test('throws for too many keys', function(done) {
var user = {token: 'raw token', foo: 'bar'};
var call = function() {
store.set(user);
};
expect(call).to.throw(Error, 'User store only supports a token property');
done();
});
lab.test('throws for invalid token type', function(done) {
var user = {token: 42};
var call = function() {
store.set(user);
};
expect(call).to.throw(Error, 'User token must be a string');
done();
});
});

@@ -32,0 +51,0 @@

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc