Skip to content

Instantly share code, notes, and snippets.

View goatslacker's full-sized avatar

Josh Perez goatslacker

View GitHub Profile
var { Store, Dispatcher } = require('./dist/emf')
var myDispatcher = new Dispatcher()
class DogStore extends Store {
getInitialState() {
return {
dog: 2
}
}
class TaskStore {
constructor() {
this.bindActions(TaskActions)
}
static getImmutableState() {
var state = this.getState()
// do something with state.
@goatslacker
goatslacker / gist:d578a816902ab1e57c34
Created February 8, 2015 09:40
broken tco on 6to5
λ node_modules/6to5/bin/6to5-node broken-tco.js
{ yes: 1, '[object Object]': 2, no: 1 }
λ cat node_modules/6to5/package.json | grep version
"version": "3.5.0",
λ cat broken-tco.js
function format(x) {
return x.toUpperCase()
}
"use strict";
var _tailCall = (function () {
function Tail(func, args, context) {
this.func = func;
this.args = args;
this.context = context;
}
Tail.prototype._isTailDescriptor = true;
var isRunning = false;
class MyActions {
asyncAction() {
setTimeout(() => {
this.dispatch('foo')
})
}
}
var myActions = alt.createActions(MyActions)
function render(SomeElement, state) {
if (typeof window === 'undefined') {
let htmlMarkup = React.renderToString(React.createElement(SomeElement, state))
return Iso.render(htmlMarkup, state, { id: 'hello' })
} else {
Iso.on('id', 'hello', function (state, meta, node) {
React.render(React.createElement(SomeElement, state), node)
})
}
var Alt = require('alt')
var alt = new Alt()
function S() { }
S.getUserById = function (id) {
var { users } = this.getState()
if (users[id]) {
return users[id]
} else {
var Alt = require('alt')
var alt = new Alt()
function UserActions() {
this.generateActions('getUser', 'addUser')
}
var ua = alt.createActions(UserActions)
var Alt = require('alt')
function Action() {
}
Action.prototype.a = function () {
return 2
}
var a = new Alt().createActions(Action)
import Alt from 'alt';
import DispatcherRecorder from 'alt/utils/DispatcherRecorder';
let alt = new Alt();
let recorder = new DispatcherRecorder(alt);
// setup actions and store
function Actions() { this.generateActions('a', 'b', 'c'); }