Skip to content

Instantly share code, notes, and snippets.

View max-winderbaum's full-sized avatar

Max Winderbaum max-winderbaum

View GitHub Profile
@max-winderbaum
max-winderbaum / es6PipelineSimpleMiddleware.js
Created October 20, 2016 21:44
ES6 Pipeline Simple Middleware
const pipeline = (...funcs) =>
value => funcs.reduce((a, b) => b(a), value);
const handlers = new Map({
handlePhraseMouseEnter(phrase) {
hoverState.handleMouseEnter(phrase);
phraseConfig.handleMouseEnter(phrase);
},
handlePhraseMouseLeave(phrase) {
hoverState.handleMouseLeave(phrase);
phraseConfig.handleMouseLeave(phrase);
},
handlePhraseClick: phraseConfig.handlePhraseClick,
import { Map, List } from 'immutable';
export default function getPhrasesByBlock(phrases) {
return phrases.reduce(
(phrasesByBlock, phrase) => phrasesByBlock.update(
phrase.get(`blockKey`),
new List(),
(blockPhrases) => blockPhrases.push(phrase)
),
new Map(),
@max-winderbaum
max-winderbaum / rename_js_to_ts
Created June 29, 2017 18:32
Rename all js files to ts typescript recursively
rename "s/\.js/\.ts/" **/*.js && git add **/*.ts && git rm **/*.js
@max-winderbaum
max-winderbaum / depInj.js
Last active September 24, 2017 21:00
Poor Man's Dependency Injection
import dep1 from '../dep1';
import dep2 from '../dep2';
const defaultDeps = {
dep1,
dep2,
};
export function _myModuleFactory({ dep1, dep2 } = defaultDeps) {
const myModule = {};
@max-winderbaum
max-winderbaum / Request.spec.ts
Created October 17, 2017 20:41
RewirableObject
import { Request, rewireRequest } from "./Request";
const mockRequest = { fake: true };
rewireRequest(mockRequest);
// Use mocked request here