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

harukaze

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

harukaze - npm Package Compare versions

Comparing version 0.0.7 to 0.1.0

2

index.js

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

var _ = require('underscore');
var _ = require('lodash');

@@ -3,0 +3,0 @@ var debug = require('./lib/debug');

@@ -1,4 +0,1 @@

var Promise = require('es6-promise').Promise;
var _ = require('underscore');
var logger = require('./logger');

@@ -5,0 +2,0 @@

@@ -0,22 +1,49 @@

var _ = require('lodash');
var Promise = require('es6-promise').Promise;
var Bacon = require('baconjs');
var logger = require('./logger');
var bus = new Bacon.Bus();
var dirtyStores = [];
var dispatch = function (type, payload) {
logger.logMessage(type, payload);
bus.push({
type: type,
payload: payload
});
function dispatch(type, payload) {
return new Promise(function (resolve, reject) {
logger.logMessage(type, payload);
bus.push({type: type, payload: payload});
logger.logDirtyStores(dirtyStores);
pushChanges(dirtyStores);
clearDirtyMarks();
resolve();
});
}
var getFeed = function (type) {
return bus.filter(function (x) {
return x.type === type;
function input(type) {
var payloads = bus.filter(function (msg) {
return msg.type === type;
}).map('.payload');
};
return payloads;
}
function markStoreAsDirty(store) {
if (!_.contains(dirtyStores, store)) {
dirtyStores.push(store);
}
}
function pushChanges(dirtyStores) {
setTimeout(function () {
_.each(dirtyStores, function (store) {
store.changes.push(store.output);
});
}, 0);
}
function clearDirtyMarks() {
dirtyStores = [];
}
module.exports = {
dispatch: dispatch,
getFeed: getFeed
input: input,
markStoreAsDirty: markStoreAsDirty
};

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

var _ = require('lodash');
var debug = require('./debug').debug;

@@ -32,7 +33,17 @@

if (payload) {
console.log('MESSAGE %s: %o', name, payload);
console.group('MESSAGE %s: %o', name, payload);
} else {
console.log('MESSAGE %s', name);
console.group('MESSAGE %s', name);
}
},
logDirtyStores: function (dirtyStores) {
if (!debug.enabled) { return; }
if (dirtyStores.length) {
console.log("CHANGED STORES: %s", _.pluck(dirtyStores, 'displayName').join(', '));
} else {
console.log("NO STORES CHANGED.");
}
console.groupEnd();
}
};

@@ -1,14 +0,5 @@

var Promise = require('es6-promise').Promise;
var dispatcher = require('./dispatcher');
function message(type) {
function push(payload) {
return new Promise(function (resolve, reject) {
dispatcher.dispatch(type, payload);
resolve();
});
}
push.feed = dispatcher.getFeed(type);
return push;
return dispatcher.dispatch.bind(dispatcher, type);
}

@@ -15,0 +6,0 @@

@@ -1,11 +0,45 @@

var _ = require('underscore');
var _ = require('lodash');
var dispatcher = require('./dispatcher');
var Bacon = require('baconjs');
function store(displayName, spec) {
var changes = new Bacon.Bus();
var obj = {
displayName: displayName,
output: _.extend({}, spec.output),
changes: changes
};
var methods = gatherStoreMethods(spec);
bindStoreMethods(spec, obj, methods);
wireStore(spec, obj, dispatcher.input);
return obj;
}
function gatherStoreMethods(spec) {
return _.reject(_.keys(spec), function (key) {
return _.contains(['output'], key);
});
}
function bindStoreMethods(spec, store, methods) {
_.each(methods, function(key) {
store[key] = _.bind(spec[key], store);
});
}
function wireStore(spec, store, input) {
function output(stream, property) {
stream.onValue(function (value) {
if (store.output[property] != value) {
store.output[property] = value;
dispatcher.markStoreAsDirty(store);
}
});
}
store.wire(input, output);
}
module.exports = {
store: function (spec) {
var obj = _.extend({}, spec);
_.each(_.keys(obj), function(key) {
obj[key] = _.bind(obj[key], obj);
});
return obj;
}
store: store
};
{
"name": "harukaze",
"version": "0.0.7",
"version": "0.1.0",
"description": "A reactive flux architecture implementation",

@@ -33,4 +33,4 @@ "main": "index.js",

"es6-promise": "^2.0.0",
"underscore": "^1.7.0"
"lodash": "^2.4.1"
}
}
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