Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
A simple event emitter with tools for eventual consistency. Diode only has one event.
Diode.listen(callback)
Diode.emit()
Diode can batch event subscriptions using volley
. In
short, this means that sequential publications will be clumped:
Diode.listen(callback)
for (var i = 1000; i > 0; i--) {
Diode.volley()
}
// callback will only fire once
This means that state changes which would activate multiple times, such as an action which affects multiple data stores, will trigger once. This should improve efficiency and simplify actions such as merging records.
It is also quite small (see API). We found ourselves building something similar to it on several projects and decided it was better to keep it in one place.
For React projects, Diode includes a Stateful
mixin, it expects a
getState
method that is called every time Diode publishes a
change.
First include the Stateful
mixin into a component, and provide a
getState
method:
var React = require('react/addons');
var Stateful = require('diode/stateful');
var MyStore = require('./myStore');
var Pure = React.addons.PureRenderMixin;
var Component = React.createClass({
mixins: [ Stateful, Pure ],
getState: function() {
return {
items: MyStore.all()
}
},
render: function() {
// render something purely
}
})
Then in your stores, execute 'publish' on the Diode when you want to propagate a change:
var Diode = require('diode')
var _data = []
MyStore.add = function(record) {
_data = _data.concat(record)
Diode.volley()
}
And that's it!
Diode is both an event emitter and a decorator that can add event subscription to another object:
var MyData = Diode({
data: [],
add: function(record) {
this.data.push(record)
this.publish()
}
})
Diode also supports the new
operator:
var myDiode = new Diode()
listen,subscribe
: Add a subscriptionignore,unsubscribe
: Remove a subscriptionemit,publish
: Trigger all subscriptionsvolley
: Trigger a change lazily, batched togethergetState
: This method is called by Stateful
whenever the Diode
executes emit
or volley
to update the state of a component. It
is required.4.3.0
subscribe
alias for listen
unsubscribe
alias for ignore
publish
alias for emit
new
OperatorCompressed : 724 bytes
Gzipped : 389 bytes
FAQs
A simple event emitter.
The npm package diode receives a total of 451 weekly downloads. As such, diode popularity was classified as not popular.
We found that diode demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.