Skip to content

Instantly share code, notes, and snippets.

View chrisbuttery's full-sized avatar
🏠
Working from home

Chris Buttery chrisbuttery

🏠
Working from home
View GitHub Profile
{
"env": {
"browser": true,
"node": true,
"es6": true
},
"ecmaFeatures": {
"modules": [2]
},
@chrisbuttery
chrisbuttery / iteration.js
Last active August 29, 2015 14:20
Deku: Iteration
import { tree, render, element } from 'deku';
var ListItem = {
render (component) {
let { props, state } = component;
let { item } = props;
return (
<li>
{ item.name }
<button onClick={ props.onRemove }>Remove</button>
@chrisbuttery
chrisbuttery / counter.js
Last active August 29, 2015 14:20
Deku: Counter
import { tree, render, element } from 'deku';
let Counter = {
initialState () {
return {
secondsElapsed: 0
}
},
render (component) {
@chrisbuttery
chrisbuttery / button.js
Last active August 29, 2015 14:20
Deku: Button
import { tree, render, element } from 'deku';
let Button = {
initialState () {
return {
liked: false
}
},
render (component) {
@chrisbuttery
chrisbuttery / index.js
Last active August 29, 2015 14:20
requirebin sketch
var curry = require('ramda').curry;
var _ = require('lodash');
var map = curry(function(f, xs){
return xs.map(f);
});
var split = curry(function(what, x){
return x.split(what);
});

So I was curious how mocha implements their: "be synchronous if callback is undefined, be async if callback is defined". The way to do this is by using Function.length

// fn, fn -> null
function detect (fn, cb) {
  if (fn.length) return fn(() => cb())
  fn() && cb()
}
module: {
preLoaders: [
{
test: /\.js$/,
exclude: [
/node_modules/,
/build/
],
loader: "eslint-loader"
}
const koa = require('koa');
const app = koa();
const port = process.env.PORT || 1337;
var deku = require('deku');
var tree = deku.tree;
var element = deku.element;
var renderString = deku.renderString;
var Counter = require('./lib/counter');
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcwAAAHMCAYAAABY25iGAAAgAElEQVR42sy9WXMjZ3L9nSRAYgcBcO1ujWTJthy2Y8LhC392X/rWH8AOezSjkXpvktiJlQCJ98L+5f/gUS1PgT2OtyM6WiKxVD1V9WSekydPHv3rv/7rzsxst9vZbrez5+dn/2/9c3R05P/y34f82e12dnR09JvP1+9I++5Dv4/P43s5B/0ePT99Td7xh8f6/Pxsz8/Pv/mdvp7P1u/U40j6G659eGxpn5X1+7Q/ugbhuZ+cnFi5XLZKpWJmZg8PD/b4+Gjb7dYajYbV63XbbDa22+1sPB5bqVSyer2+ty56nXVdwjVKe23aOfGa3W5npVLJyuWybbdbe3p68s8slUr++qenJ3t+fvZ1PTk5MTOz4+Nje3x8tMfHR3/v8fGxfzbv4zuq1aqvGa/Xcz0+Prbj42P/nu12u/fapHOLua+LXNu0+6XIn5c8h0n3dtJzyl99Tbg2SWulPyuVSr95PpPunbw14brzWq6j/oyfh89oeJ5p1zdvv9G14bV594u+PmsPzlrP2PXWz0r63vD/k45J3x+zZ+Xdh2mfl/X9SXsI+7l+TrnIg5J38Q99+LIWNe1iZW3qeiPGBJGXbBpZwTNrc8t6cL/WZhXezFkJwNf4vqSkI+9eykqQws/LW5fwXHkfN71udLyOgMlGGCaNSRtv0saedKzhxqZBN+k7/v/yJ+teecnznvRsJgXM2Gcp6b+TnsdwjZO+P+uY0o4x67782n+yrkdeYpEVNMI9Ii+w5gWgIsEt67VfA5SlJd9pATOMK0nnW867OdM+4NAbJe0mS0OceTdDzIOVtxkknVceytVsLykohkg0KQj8pTL8rBs7PM4kpJ32oOkfNv/wJg+DEj+LvXnTXpN2rEmfc3x8bOVy2U5PT221Wtnj46Ptdjsrl8vWaDT8Pev12h4fH+34+NhKpZJVq1XbbDa2WCwcmYIUOV9+xnHyXc
[
{
"_id": "556668152fc27f3502dda74c",
"index": 0,
"guid": "e2039ae3-d19f-4398-985d-cda34862f9a7",
"isActive": false,
"balance": "$3,851.34",
"picture": "http://placehold.it/32x32",
"age": 30,
"eyeColor": "green",