Skip to content

Instantly share code, notes, and snippets.

View hunterc's full-sized avatar

Hunter Cassidy hunterc

View GitHub Profile
@hunterc
hunterc / Fetch.js
Created October 5, 2017 02:56
<Fetch> component
// @flow
import type { Element } from "react"
import React from "react"
import invariant from "invariant"
type State = {
data: Object | null,
error: Error | null,
fetching: boolean
@hunterc
hunterc / async-examples.js
Created October 22, 2016 01:47 — forked from developit/async-examples.js
Async Array utilities in async/await. Now available as an npm package: https://github.com/developit/asyncro
/** Async version of Array.prototype.reduce()
* await reduce(['/foo', '/bar', '/baz'], async (acc, v) => {
* acc[v] = await (await fetch(v)).json();
* return acc;
* }, {});
*/
export async function reduce(arr, fn, val, pure) {
for (let i=0; i<arr.length; i++) {
let v = await fn(val, arr[i], i, arr);
if (pure!==false) val = v;
@hunterc
hunterc / esnextbin.md
Created June 1, 2016 13:02
esnextbin sketch
import React from 'react';
import { render } from 'react-dom';
import { createStore, combineReducers } from 'redux';
import { Provider } from 'react-redux';
import { Router, Route, IndexRedirect } from 'react-router';
import { useBasename, createHistory } from 'history';
import { syncReduxAndRouter, routeReducer } from 'redux-simple-router';
const reducer = combineReducers({
routing: routeReducer
@hunterc
hunterc / reducers.js
Last active August 31, 2015 20:15
reducer stores
function initialState() {
return [];
}
function selectReducer(state = initialState(), action) {
switch (action.type) {
case SELECT_OPTION:
return state.map(option =>
option.id === action.id
? { ...option, selected: true }
@hunterc
hunterc / django_complete.sh
Last active August 29, 2015 14:25
django auto complete
brew tap homebrew/completions
brew install django-completion
# resource your profile
source ~/.bashrc
@hunterc
hunterc / spiral_matrix.py
Created March 10, 2015 13:41
spiral matrix
!#/usr/bin/python
import sys
file = open(sys.argv[1])
lst = []
for line in file:
lst.append(line.strip().split())
var http = require('http');
var urls = process.argv.slice(2);
var results = [];
var done = 0;
function printResults() {
for (var i = 0; i < 3; i++) console.log(results[i]);
}
@hunterc
hunterc / example_model.js
Created January 19, 2015 18:53
example mongoose model
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var fields = {
// fields for model
name: String
};
var ModelSchema = new Schema(fields);
var Table = React.createClass({
getInitialState: function () {
var data = [];
for (var r = 0; r < this.props.rows; r++) {
data[r] = [];
for (var c = 0; c < this.props.columns; c++) {
data[r][c] = 0;
}
}
return {