react + redux + RR
It uses https://gist.github.com/iNikNik/3c1b870f63dc0de67c38 for stores and actions.
1) create redux
const redux = createRedux(state);
2) get requireAccess func => bindCheckAuth to redux
(ns todo-server.core | |
(:require | |
[cljs.nodejs :as nodejs] | |
[figwheel.client :as fw])) | |
(nodejs/enable-util-print!) | |
(defonce express (nodejs/require "express")) | |
(defonce serve-static (nodejs/require "serve-static")) | |
(defonce http (nodejs/require "http")) |
react + redux + RR
It uses https://gist.github.com/iNikNik/3c1b870f63dc0de67c38 for stores and actions.
1) create redux
const redux = createRedux(state);
2) get requireAccess func => bindCheckAuth to redux
import { combineReducers } from 'redux'; | |
import users from './reducers/users'; | |
import posts from './reducers/posts'; | |
export default function createReducer(asyncReducers) { | |
return combineReducers({ | |
users, | |
posts, | |
...asyncReducers | |
}); |
const ReactPerf = require('ReactPerf'); | |
const TRACE_DOM = false; | |
function reactPerfTrace(objName: string, fnName: string, func: any): any { | |
return function(component) { | |
let label; | |
if (objName === 'ReactCompositeComponent') { | |
var instName = this.getName() || 'Unknown'; | |
label = fnName === 'mountComponent' || fnName === 'updateComponent' ? instName : `${instName}.${fnName}`; |
/src/parser/spider_monkey_ast.ml
: The type definitions for the AST. Tries to stay very close to ESTree/src/parser/lexer_flow.mll
: The ocamllex lexer logic/src/parser/parser_flow.ml
: The recursive descent JS parser/src/typing/type_inference_js.ml
: Contains the "entry point" for inference (Function called infer_ast
)./src/typing/statement.ml
: Most of the inference logic (runs through the AST and generates the initial constraints)