Skip to content

Instantly share code, notes, and snippets.

View marcelopereirascmspain's full-sized avatar

marcelo alves marcelopereirascmspain

  • scmspain
  • barcelona
View GitHub Profile
<style>
* {
margin: 0;
padding: 0;
list-style-type: none;
}
.Button {
font: 16px/1.5 sans-serif;
border: 1px solid #ddd;
function match(handlers, defaultFn) {
return key => {
return (...args) => {
if (typeof handlers[key] === 'function') {
return handlers[key].call(this, ...args);
}
return defaultFn(...args);
}
}
let doOnError = (fn, onError) => {
return (...args) => {
try {
return fn.apply(this, args);
} catch (err) {
onError(err);
throw err;
}
}
};
@marcelopereirascmspain
marcelopereirascmspain / measure-decorator.js
Last active September 7, 2015 17:01
measure decorator
let measure = (fn) => {
return (...args) => {
console.log(fn.name);
let t0 = performance.now();
let res = fn.apply(this, args);
let t1 = performance.now();
console.log(t1 - t0);
return res;
}
};
type alias Field =
{ id : String
, label : String
, value : String
, fieldset : List Field
}
-- This type alias is part of a mutually recursive set of type aliases.
// http://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript-jquery
const hashCode = (s) => {
return s.split("").reduce(function(a,b){a=((a<<5)-a)+b.charCodeAt(0);return a&a},0);
};
const memoizeObservable = (fn) => {
let cache = {};
return (...args) => {
let entryKey = hashCode(JSON.stringify(args));
const dispatcher = createDispatcher(
store,
getState => [thunkMiddleware(getState)]
);
const redux = createRedux(dispatcher);
class App extends React.Component {
handleChange(field) {
const {id, value} = field;
const dispatcher = createDispatcher(
store,
getState => [thunkMiddleware(getState)]
);
const redux = createRedux(dispatcher);
class App extends React.Component {
handleChange(field) {
const {id, value} = field;