npm Users By Downloads (git.io/npm-top)
npm users sorted by the monthly downloads of their modules, for the range May 6, 2018 until Jun 6, 2018.
Metrics are calculated using top-npm-users.
# | User | Downloads |
---|
import { createStore, applyMiddleware } from 'redux'; | |
import { Observable, Subject } from 'rxjs'; | |
const api = type => { | |
console.log(`calling API ${type}`); | |
return new Promise(res => setTimeout(() => res(), 500)); | |
}; | |
const actionOrder = (actions, order) => actions.every((action, index) => action.type === order[index]); | |
const actionPredicate = actions => filterableAction => actions.some(action => action === filterableAction.type); |
Raven.config(dsn, { | |
dataCallback(data) { | |
const normalize = filename => filename.split('/www/', 2)[1] | |
data.exception.values[0].stacktrace.frames.forEach(frame => { | |
frame.filename = normalize(frame.filename) | |
}) | |
data.culprit = data.exception.values[0].stacktrace.frames[0].filename |
export function retrieve(nodeId) { | |
return { type: 'RETRIEVE_NODE', payload: { nodeId: nodeId } } | |
} | |
export function show(nodes) { | |
return { type: 'SHOW_NODE', payload: { nodes: nodes } } | |
} |
npm users sorted by the monthly downloads of their modules, for the range May 6, 2018 until Jun 6, 2018.
Metrics are calculated using top-npm-users.
# | User | Downloads |
---|
JedWatson/classnames (2650855 dls, 1465 stars) | |
yannickcr/eslint-plugin-react (2077066 dls, 710 stars) | |
rackt/react-router (1833204 dls, 9050 stars) | |
facebook/react-dom (782024 dls, 33044 stars) | |
gaearon/react-hot-loader (708042 dls, 3250 stars) | |
rackt/redux (568969 dls, 10743 stars) | |
rackt/react-redux (495498 dls, 1509 stars) | |
jsdf/coffee-react-transform (463488 dls, 380 stars) | |
JedWatson/react-input-autosize (455277 dls, 107 stars) | |
reflux/reflux (393281 dls, 4316 stars) |
curl -X POST \ | |
-H "Authorization: key= YOUR-API-KEY" \ | |
-H "Content-Type: application/json" \ | |
-d '{ | |
"registration_ids": [ | |
"YOUR-GCM-REGISTRATION-ID" | |
], | |
"data": { | |
"message": "Hello Message" | |
}, |
function mapValues(obj, fn) { | |
return Object.keys(obj).reduce((result, key) => { | |
result[key] = fn(obj[key], key); | |
return result; | |
}, {}); | |
} | |
function pick(obj, fn) { | |
return Object.keys(obj).reduce((result, key) => { | |
if (fn(obj[key])) { |
Tether is a great library for positioning stuff (tooltips, modals, hints, etc) in your web app.
But, as I use React, it was pretty problematic for me, as Tether mutates the DOM and React breaks miserably when it sees mutated DOM. The solution is to have the tethered element outside the part of the DOM tree which is controlled by React (in this case, I use document.body
).
That's why I created 2 helpers to use Tether with React.
The first one, TetheredElement
is a plain JS helper to create a new element, attach it to some other one via Tether, and populate it with some React component.
The second one, TetherTarget
is a React component and it uses TetheredElement
to integrate it further with React, so that you can attach components to each other with Tether, without leaving the cozy React/JSX world and worrying about manual DOM operations. Just write:
// ------------ | |
// counterStore.js | |
// ------------ | |
import { | |
INCREMENT_COUNTER, | |
DECREMENT_COUNTER | |
} from '../constants/ActionTypes'; | |
const initialState = { counter: 0 }; |