New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

localsync

Package Overview
Dependencies
Maintainers
1
Versions
47
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

localsync - npm Package Compare versions

Comparing version 0.1.2 to 0.1.3

72

lib/index.js

@@ -27,12 +27,3 @@ 'use strict';

var createInstanceID = function createInstanceID() {
var N = arguments.length <= 0 || arguments[0] === undefined ? 8 : arguments[0];
return (Math.random().toString(36) + '00000000000000000').slice(2, N + 2);
};
var createCookieKey = function createCookieKey(key) {
return 'localsync_fb_' + key;
};
function cookiesync(key, sync, handler) {
function cookiesync(key, action, handler) {
var _ref = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];

@@ -44,6 +35,6 @@

var cookie = require('react-cookie');
var cookieKey = createCookieKey(key);
var instanceID = createInstanceID();
var isSyncRunning = false;
var cookieKey = 'localsync_fb_' + key;
var instanceID = function (N) {
return (Math.random().toString(36) + '00000000000000000').slice(2, N + 2);
}(8);
var loadCookie = function loadCookie() {

@@ -56,4 +47,5 @@ return cookie.load(cookieKey);

var triggerSync = function triggerSync() {
var value = sync.apply(undefined, arguments);
var isRunning = false;
var trigger = function trigger() {
var value = action.apply(undefined, arguments);
saveCookie(cookieKey, value);

@@ -63,3 +55,3 @@ };

var intervalID = null;
var startSync = function startSync() {
var start = function start() {
var last = loadCookie();

@@ -84,15 +76,15 @@ if (!last) {

}, pollFrequency);
isSyncRunning = true;
isRunning = true;
};
var stopSync = function stopSync() {
var stop = function stop() {
clearInterval(intervalID);
isSyncRunning = false;
isRunning = false;
};
return { startSync: startSync,
stopSync: stopSync,
triggerSync: triggerSync,
get isSyncRunning() {
return isSyncRunning;
return { start: start,
stop: stop,
trigger: trigger,
get isRunning() {
return isRunning;
},

@@ -104,33 +96,33 @@ isFallback: true,

function localsync(key, sync, handler) {
function localsync(key, action, handler) {
var opts = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];
should.exist(key);
should.exist(sync);
should.exist(action);
should.exist(handler);
if (isEdgeOrIE()) return cookiesync(key, sync, handler, opts);
if (isEdgeOrIE()) return cookiesync(key, action, handler, opts);
var isSyncRunning = false;
var isRunning = false;
var triggerSync = function triggerSync() {
var value = sync.apply(undefined, arguments);
var trigger = function trigger() {
var value = action.apply(undefined, arguments);
(0, _localStorage2.default)(key, value);
};
var startSync = function startSync() {
var start = function start() {
_localStorage2.default.on(key, handler);
isSyncRunning = true;
isRunning = true;
};
var stopSync = function stopSync() {
var stop = function stop() {
_localStorage2.default.off(key, handler);
isSyncRunning = false;
isRunning = false;
};
return { startSync: startSync,
stopSync: stopSync,
triggerSync: triggerSync,
get isSyncRunning() {
return isSyncRunning;
return { start: start,
stop: stop,
trigger: trigger,
get isRunning() {
return isRunning;
},

@@ -137,0 +129,0 @@ isFallback: false

{
"name": "localsync",
"version": "0.1.2",
"version": "0.1.3",
"description": "a lightweight module to sync JS objects in realtime across tabs / windows of a browser.",

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

@@ -17,3 +17,3 @@ # localsync

const sync = username => username
const action = username => username
const handler = (value, old, url) => {

@@ -23,16 +23,16 @@ console.info(`Another tab at url ${url} had username updated from ${old.username} to ${value.username}.`)

const { startSync, stopSync, triggerSync, isSyncRunning, isFallback } = localsync('username', sync, handler)
const usernameSync = localsync('username', action, handler)
startSync()
usernameSync.start()
triggerSync('jim')
usernameSync.trigger('jim')
setTimeout(() => {
triggerSync('jane')
usernameSync.trigger('jane')
}, 5000)
setTimeout(() => {
if(isSyncRunning)
stopSync()
if(usernameSync.isRunning)
usernameSync.stop()
}, 10000)
```

@@ -11,20 +11,13 @@ import ls from 'local-storage'

const createInstanceID = (N = 8) => (Math.random().toString(36)+'00000000000000000').slice(2, N+2)
const createCookieKey = key => `localsync_fb_${key}`
function cookiesync(key, sync, handler, { pollFrequency = 3000 } = {}) {
function cookiesync(key, action, handler, { pollFrequency = 3000 } = {}) {
const cookie = require('react-cookie')
const cookieKey = createCookieKey(key)
const instanceID = createInstanceID()
let isSyncRunning = false
const cookieKey = `localsync_fb_${key}`
const instanceID = (N => (Math.random().toString(36)+'00000000000000000').slice(2, N+2))(8)
const loadCookie = () => cookie.load(cookieKey)
const saveCookie = value => cookie.save(cookieKey, value)
const triggerSync = (...args) => {
const value = sync(...args)
let isRunning = false
const trigger = (...args) => {
const value = action(...args)
saveCookie(cookieKey, value)

@@ -35,3 +28,3 @@ }

let intervalID = null
const startSync = () => {
const start = () => {
let last = loadCookie()

@@ -58,14 +51,14 @@ if(!last) {

}, pollFrequency)
isSyncRunning = true
isRunning = true
}
const stopSync = () => {
const stop = () => {
clearInterval(intervalID)
isSyncRunning = false
isRunning = false
}
return { startSync
, stopSync
, triggerSync
, get isSyncRunning () { return isSyncRunning }
return { start
, stop
, trigger
, get isRunning () { return isRunning }
, isFallback: true

@@ -77,33 +70,33 @@ , instanceID

export default function localsync(key, sync, handler, opts = {}) {
export default function localsync(key, action, handler, opts = {}) {
should.exist(key)
should.exist(sync)
should.exist(action)
should.exist(handler)
if(isEdgeOrIE())
return cookiesync(key, sync, handler, opts)
return cookiesync(key, action, handler, opts)
let isSyncRunning = false
let isRunning = false
const triggerSync = (...args) => {
const value = sync(...args)
const trigger = (...args) => {
const value = action(...args)
ls(key, value)
}
const startSync = () => {
const start = () => {
ls.on(key, handler)
isSyncRunning = true
isRunning = true
}
const stopSync = () => {
const stop = () => {
ls.off(key, handler)
isSyncRunning = false
isRunning = false
}
return { startSync
, stopSync
, triggerSync
, get isSyncRunning () { return isSyncRunning }
return { start
, stop
, trigger
, get isRunning () { return isRunning }
, isFallback: false
}
}
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